Netbeans, Ant и RMIC (Java RMIC Compiler) (Помощь по) - PullRequest
1 голос
/ 05 февраля 2009

Я довольно расстроен / сбит с толку в данный момент.

У меня есть проект Netbeans, который прекрасно компилируется. Я отредактировал файл build.xml для создания цели "-post-compile", которая выполняет задачу rmic ant.

Так что теперь, когда я «очищаю и собираю», он компилирует мой основной код, а затем генерирует заглушки rmic для меня.

Однако, когда я выбрал «Запустить» мой проект NetBeans, используя диалоги Netbean, мои файлы-заглушки магически исчезают. (Тем не менее, скомпилированные классы все еще остаются) Затем он пытается запустить мое приложение, что, конечно же, дает сбой, поскольку требуемые файлы-заглушки теперь отсутствуют.

Это проект, управляемый NetBeans (не приложение Ant в свободной форме). Я указал класс, который хотел бы «запустить». И это, по сути, единственные варианты, которые мне даны.

Я пробовал:

<target name="-post-compile">
<rmic classname="RTIController.Lane_Assignment_Strategy.Impl_Lane_Assignment_Strategy_Dist_FirstFlow" base="${build.classes.dir}"/>
<rmic classname="MappingModel.Impl_SimObjectPackage.Impl_Road" base="${build.classes.dir}"/>
<rmic classname="MappingModel.Impl_SimObjectPackage.Impl_Lane" base="${build.classes.dir}"/>
<rmic classname="MappingModel.Impl_SimObjectPackage.Impl_Veh_Source" base="${build.classes.dir}"/>
<rmic classname="MappingModel.Impl_SimObjectPackage.Impl_Veh_Sink" base="${build.classes.dir}"/>
<rmic classname="RTIController.Timing_Event.Adapter_Timing_Event_Source" base="${build.classes.dir}"/>
<rmic classname="MappingModel.Impl_SimObjectPackage.Impl_Vehicle.Impl_Vehicle_Car" base="${build.classes.dir}"/>
<rmic classname="MappingModel.Impl_SimObjectPackage.Impl_Vehicle.Impl_Vehicle_Truck" base="${build.classes.dir}"/>
</target>
<target name="run" depends="init,compile,graphicalMapper-impl.run"/>

внутри build.xml (для переопределения build-impl.xml).

Кто-нибудь может пролить свет на эту тему? С другой стороны, когда я запускаю Ant с помощью команды like ('ant run'), она работает нормально. (Выполняет ли init, compile, post-compile и run.)

При проверке журналов отладки Ant при попытке заставить Netbeans «запустить» приложение, он появляется только для выполнения задачи «выполнить». (Что, очевидно, не похоже на переопределенный «прогон», который я предоставил.

Я был бы очень признателен за любую помощь по этому вопросу, так как компиляция и запуск по отдельности довольно контрпродуктивно. (В настоящее время разрабатывается в NetBeans и использует cmdline ant для сборки и запуска.)

Ответы [ 2 ]

1 голос
/ 06 февраля 2009

Просто дикая догадка (поскольку я давно не использовал RMI), поскольку классы заглушки RMI в Java 1.5 больше не нужны Они автоматически генерируются. Это может быть причиной того, что netbeans удаляет их.

Вы можете попробовать удалить ссылки на задачи rmic ant из вашего build.xml.

0 голосов
/ 05 мая 2009

У меня была точно такая же проблема. То, как я решил, это переопределение цели run в build.xml из моего проекта.

<target name="run" depends="PrOJECT-impl.jar">
    <java classpath="${run.classpath}" jar="${dist.jar}">
        <sysproperty value="codebase_url" key="java.rmi.server.codebase"></sysproperty>
        <sysproperty value="policy" key="java.security.policy"></sysproperty>
    </java>
</target>

Однако проблема все еще не полностью решена, так как с помощью контекстного меню или F6 все равно будут удалены файлы-заглушки и скелеты. Вам нужно запустить цель run напрямую из файла build.xml.

...