Как скомпилировать единственные/несколько файлы Java без перезапуска сервера? Действительно ли там какой-либо Eclipse является плагином для того же?

Попробуйте этот код:

$result = array();
foreach($html->find('div') as $e){
    $result[] = $e->plaintext;
}
6
задан Kara 22 January 2014 в 07:26
поделиться

6 ответов

Одна вещь компилирует классы, но Вам также нужен VM JAVA, чтобы перезагрузить классы и использовать их, который называют, заменяя в горячем режиме. Для наилучшей имеющейся замены в горячем режиме классов Вам будет нужно что-то как javarebel. Это позволяет Вам горячей перезагрузке намного больше типов изменений кода, чем обычный SUN JVM. При выполнении развертывания во взорванном режиме, Вы дома свободные, и можете протестировать любое изменение кода через секунду или около этого. На нас справедливо делают пробную поездку, таким образом, я только использую javarebel в той короткой фазе, когда я собираю целое приложение, но это работает действительно хорошо.

7
ответ дан 9 December 2019 в 22:40
поделиться

Java HotSpot VM делает это автоматически, но не во всех случаях...

Во-первых, необходимо выполнять сессию "отладки", не сессию "выполнения".

Затем, некоторые изменения вызовут перезапуск. Основная идея - это, если интерфейс к изменению класса (вздохи метода, не фактический интерфейс Java), VM не может заменить встроенное содержание класса.

Вам не должен быть нужен плагин для этого, просто недавний выход VM.

Это происходит при нескольких обстоятельствах как

  • добавление методов
  • удаление методов
  • изменение сигнатур методов
  • изменение иерархии классов (суперклассы, реализованные интерфейсы)

Это может также произойти, если Вы вводите ошибку в класс. (Для ошибок как несогласованные фигурные скобки)

То, когда Вы сохранили файл Java, затмеваете, компилирует его. Если существует ошибка, затмение вставляет бросок исключения, чтобы указать, что существует неразрешенная ошибка компиляции. (Это делает это поэтому, когда Вы работаете, Вы только видите последнюю успешную компиляцию, делая это очевидным, что у Вас есть ошибка компилятора),

2
ответ дан 9 December 2019 в 22:40
поделиться

Я не знаю Eclipse, но я действительно использую Netbeans. Netbeans делает это вполне прилично. Последняя версия даже имеет опцию автоматически перекомпилировать, когда Вы сохранили файл Java.

Я знаю, что это точно не отвечает на Ваш вопрос. Можно, вероятно, использовать и Netbeans и Eclipse в зависимости от того, какая часть проекта Вы продолжаете работать.

Править: С Tomcat можно перезагрузить веб-приложение. Это действительно только полезно, если Tomcat смотрит на новый класс. Если Ваш проект компилируется в каталог сборки сначала, и ВОЙНА затем создается из этого, можно войти в Tomcat и установить веб-приложение и вместо того, чтобы указать на ВОЕННУЮ точку в каталоге сборки.

В Tomcat Вам, вероятно, придется подвергнуть файл конфигурации сайта tomcat/conf/Catalina/localhost. Содержание этого файла похоже на это:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="C:/Projects/MyWebApp/build/web" path="/MyWebApp"/>

Инструкции для перезагрузки здесь: http://www.cs.ucl.ac.uk/teaching/java/tomcatfaq.html#changeservlet

Если Вы делаете это несколько раз, хотя Tomcat исчерпает память. Это из-за чего-то названного PermGenSpace. Читайте об этом, если Вы хотите знать больше. Решение состоит в том, чтобы увеличить память JVM, PermGenSize (с-XX:MaxPermSize) и наконец перезапуск Tomcat иногда.

EDIT2: Если перезагрузка приложения заставляет Вас выйтись из системы, Вы можете легко заставлять контейнер сериализировать Ваши данные сессии к диску путем добавления 'реализаций, сериализуемых' к некоторым классам. Затем Вы не должны должны быть входить в систему после перезагрузки приложения.

1
ответ дан 9 December 2019 в 22:40
поделиться

Я соглашаюсь, что это очень утомительно для повторного развертывания все время при разработке.

Я предложил бы, чтобы Вы изучили MyEclipse, который имеет очень хороший hotdeploy механизм, который работает хорошо с Tomcat, и который довольно доступен и имеет 30-дневную пробную версию.

Java запаса механизм EE в Eclipse для повторного развертывания на серверах нигде не как быстро.

1
ответ дан 9 December 2019 в 22:40
поделиться

Я предполагаю, что действительно не вижу, где проблема. Вот то, что я делаю и изменения загружаются почти мгновенно. У меня есть скрипт Ant, который компилирует .java и .jsp файлы для меня, помещает их в соответствующие каталоги под веб-приложениями и изменяет файл web.xml при необходимости (или по крайней мере касается его для уведомления кота изменений). Если бы Вы нуждаетесь в помощи при выполнении какого-либо из этого с Муравьем, я был бы рад помочь. Btw я не использую ВОЕННЫЕ файлы для развертывания на моей машине тестирования. Это было бы намного медленнее, я предполагаю.

0
ответ дан 9 December 2019 в 22:40
поделиться

очень легко сделать, если вы прочитаете эту страницу: См. http://blog.redfin.com/devblog/2009/09/how_to_set_up_hot_code_replacement_with_tomcat_and_eclipse.html Спасибо, Дэн Фабулич

0
ответ дан 9 December 2019 в 22:40
поделиться
Другие вопросы по тегам:

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