此刻我感到非常恼怒/困惑。
我有一个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来构建和运行。)
答案 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”目标。