Как определить, какие классы используются программой Java?

Это можно решить, выдвинув новые координаты для Испании. http://bastionstudio.co.za/test/spain-no-canary-islands.html

console.log(Highcharts.maps['custom/world'].features);

Highcharts.maps['custom/world'].features.push({
   "type":"Feature",
   "id":"ES",
   "properties": {
          "hc-group":"admin0",
          "hc-middle-x":0.76,
          "hc-middle-y":0.27,
          "hc-key":"es",
          "hc-a2":"ES","name":"Spain",
          "labelrank":"2",
          "country-abbrev":"Sp.",
          "subregion":"Southern Europe",
          "region-wb":"Europe & Central Asia",
          "iso-a3":"ESP","iso-a2":"ES","woe-id":"23424950",
          "continent":"Europe"
    },
    "geometry":{
       "type":"MultiPolygon",
       "coordinates":[
    [
     [
      [4045, 7594],
      [4021, 7599],
      [4011, 7621],
      [3984, 7629],
      [3997, 7692],
      [3998, 7762],
      [4020, 7781],
      [4009, 7795],
      [3944, 7795],
      [3930, 7838],
      [3969, 7860],
      [3988, 7852],
      [4098, 7851],
      [4151, 7846],
      [4203, 7821],
      [4246, 7818],
      [4249, 7812],
      [4255, 7814],
      [4262, 7812],
      [4262, 7813],
      [4262, 7814],
      [4263, 7812],
      [4263, 7812],
      [4279, 7808],
      [4298, 7812],
      [4300, 7795],
      [4265, 7771],
      [4233, 7763],
      [4194, 7709],
      [4211, 7683],
      [4189, 7669],
      [4183, 7644],
      [4154, 7635],
      [4143, 7615],
      [4072, 7613],
      [4046, 7594],
      [4045, 7594]
     ]
    ]
   ]
   }
});

5
задан Peter Hilton 24 January 2009 в 10:03
поделиться

4 ответа

Примите во внимание, что, как доказано проблемой остановки, Вы не можете определенно сказать, что конкретный класс или не используется. По крайней мере, на любом умеренно сложном приложении. Поэтому классы только связываются во время компиляции, но могут быть загружены:

  • на основе конфигурации XML (например, Spring);
  • загруженный из файлов свойств (например, название драйвера JDBC);
  • добавленный динамично с аннотациями;
  • загруженный в результате внешнего входа (например, ввод данных пользователем, данные из базы данных или вызова удаленной процедуры);
  • и т.д.

Таким образом, просто рассмотрение исходного кода не достаточно. Однако любой разумный IDE предоставит Вам аналитические инструменты зависимости. IntelliJ, конечно, делает.

То, в чем Вы действительно нуждаетесь, является инструментарием во время выполнения на том, что Ваше приложение делает, но даже который не гарантируется. В конце концов, конкретный путь выполнения кода мог бы подойти один в 10 миллионах выполнений из-за странной комбинации исходных данных, таким образом, Вам нельзя гарантировать это, Вы застрахованы.

Инструменты как это действительно имеют некоторое значение все же. Вы могли бы хотеть посмотреть на что-то как Emma. Профилировщики как Yourkit могут дать Вам дамп кода, которого можно сделать анализ также (хотя это не возьмет временные объекты ужасно хорошо).

Лично я нахожу мало значения вне того, что IDE скажет Вам: удаление неиспользованных БАНОК. Хождение более детализированного, чем это просто напрашивается на неприятности для мало ни к какому усилению.

9
ответ дан 18 December 2019 в 10:49
поделиться

Да, Вы хотите ProGuard. Это - абсолютно бесплатный код Java shrinker и obfuscator. Легко настроить, быстрый и эффективный.

4
ответ дан 18 December 2019 в 10:49
поделиться

Вы могли бы попробовать JarJar http://code.google.com/p/jarjar/

Это обрезает зависимости от банки.

3
ответ дан 18 December 2019 в 10:49
поделиться

Для большинства случаев можно сделать это довольно легко использующий просто javac.

Удалите Вас существующие файлы класса. Назовите javac с названием Ваших классов записи. Это скомпилирует те необходимые классы, но не больше. Задание сделано.

0
ответ дан 18 December 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: