Netbeans,Ant和RMIC(Java RMIC编译器)(帮助)

时间:2009-02-05 10:47:38

标签: java netbeans ant rmi

此刻我感到非常恼怒/困惑。

我有一个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 run')运行Ant时,它工作正常。 (初始化,编译,后编译和运行。)

在尝试让Netbeans“运行”应用程序时检查Ant调试日志时,只显示执行任务“运行”。 (这显然不是我提供的重写'run'。

我非常感谢有关这个主题的任何帮助,因为单独编译和运行会产生相反的效果。 (目前正在开发netbeans并使用cmdline ant来构建和运行。)

2 个答案:

答案 0 :(得分:1)

只是一个疯狂的猜测(因为我有一段时间没有使用过RMI),因为不再需要Java 1.5 RMI Stub类。它们是自动生成的。这可能是netbeans删除它们的原因。

您可以尝试从build.xml中删除rmic ant任务引用。

答案 1 :(得分:0)

我有完全相同的问题。 我解决它的方法是从我的项目中覆盖build.xml中的“run”目标。

<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仍会删除存根和骨架文件。您需要直接从build.xml文件运行“run”目标。