Java 如何查找Netbeans用于运行应用程序的命令
我在Netbeans中有一个项目,它使用我不熟悉的Netbeans特性,因此我不确定如何移动构建并在其他地方运行它 要在Netbeans中打开项目,我被告知要执行“文件->项目组->新组->自由组”,然后执行“文件->打开项目”并选择项目。这个项目有很多子项目(模块?)。高级的一个显示有一个图标,看起来像两个金色的拼图块,我可以打开其中的模块子项目,它显示有灰色的拼图块图标。我认为这个项目不是NetBeans的“Java项目”类型 要运行它,我可以右键单击项目面板中的顶级黄金拼图项目条目并选择“运行”。当我这样做时,需要一段时间来构建,然后运行,一切都很好 现在,我想将更新后的软件移动到网络共享,并在其他计算机上运行它。我相信另一台计算机没有NetBeans或jdk,只有jre 在项目目录的根目录中有一个nb_modules目录,其中包含nb_modules\harness\suite.xml,我认为(不是100%确定)是构建xml。除其他条目外,它还包含以下条目:Java 如何查找Netbeans用于运行应用程序的命令,java,netbeans,netbeans-8,Java,Netbeans,Netbeans 8,我在Netbeans中有一个项目,它使用我不熟悉的Netbeans特性,因此我不确定如何移动构建并在其他地方运行它 要在Netbeans中打开项目,我被告知要执行“文件->项目组->新组->自由组”,然后执行“文件->打开项目”并选择项目。这个项目有很多子项目(模块?)。高级的一个显示有一个图标,看起来像两个金色的拼图块,我可以打开其中的模块子项目,它显示有灰色的拼图块图标。我认为这个项目不是NetBeans的“Java项目”类型 要运行它,我可以右键单击项目面板中的顶级黄金拼图项目条目并选择“
<target name="run" depends="build,-jdk-init" description="Runs this suite in place.">
<ant antfile="${harness.dir}/run.xml" target="run">
<reference refid="cluster.path.id"/>
</ant>
</target>
run.xml中包含以下目标:
<target name="run" depends="-prepare-as-app,-prepare-as-platform">
<touch file="${cluster}/.lastModified"/> <!-- #138427 -->
<property name="run.args" value=""/>
<property name="run.args.ide" value=""/>
<property name="run.args.extra" value=""/>
<condition property="run.args.mac" value="-J-Xdock:name='${app.name}'" else="">
<os family="mac"/>
</condition>
<exec osfamily="windows" executable="${run.exe}" failonerror="no">
<arg value="--jdkhome"/>
<arg file="${run.jdkhome}"/>
<arg line="${run.args.common}"/>
<arg line="${run.args.prepared}"/>
<arg line="${run.args}"/>
<arg line="${run.args.extra}"/>
<arg line="${run.args.ide}"/>
</exec>
<exec osfamily="unix" dir="." executable="sh" failonerror="no">
<arg value="${run.sh}"/>
<arg value="--jdkhome"/>
<arg file="${run.jdkhome}"/>
<arg line="${run.args.common}"/>
<arg line="${run.args.prepared}"/>
<arg line="${run.args}"/>
<arg line="${run.args.extra}"/>
<arg line="${run.args.mac}"/>
<arg line="${run.args.ide}"/>
</exec>
</target>
在项目目录的根目录中,我还有一个build目录,我认为它是构建内容的地方,其中有一堆jar。有一个…/build/cluster/modules/目录和一个…/build/cluster/core/locale/目录,其中只有一个文件:core\u app\u all\u gui.jar,我假设它是主jar
如果我尝试执行java-jarcore\u app\u all\u gui.jar
我会得到“core\u app\u all\u gui.jar中没有主清单属性”,因此我想知道是否需要执行java-cp core\u app\u all\u gui.jar包.MainClass
格式。由于suite.xml/run.xml不在构建区域中,我不确定是否应该使用它们。我假设它们是ant脚本,尽管我不确定。我不确定我要运行此操作的计算机是否有ant
对于我的特定用例,如果您可以解释如何使用上面的xml数据来帮助确定适合我的命令行,那就好了。不过,如果能找到一个对每个人都适用的通用答案,那就太好了。我只想在另一台计算机上运行它
我在这里找到的所有其他答案,包括StackOverflow,都是专门针对传统的Netbeans Java项目的,这些项目创建了一个dist/myapp.jar,只需
Java-jar myapp.jar
即可运行。因为这不能回答我的问题,所以它们不是重复的。您的项目看起来像一个ant项目。仅仅基于ant脚本,很难弄清楚它在运行时使用了什么命令。要让ant项目检查NetBeans用于午餐应用程序的命令,请转到工具->选项->Java->ant,并将详细程度设置为调试
从NetBeans下载应用程序后,您应该查看输出窗口(ctrl-4)中的最后一个命令,或者找到正在执行的关键字
例如,在输出窗口中从源代码(NetBeans使用ant脚本)编译后以常规模式运行NetBeans时,我发现以下几行:
...
Current OS is Windows 10
Executing 'D:\GITHUB\OtherRepositoryes\NetBeans\nbbuild\netbeans\bin\netbeans64.exe' with arguments:
'--jdkhome'
'C:\Program Files\Java\jdk1.8.0_231'
'--userdir'
'D:\GITHUB\OtherRepositoryes\NetBeans\nbbuild\testuserdir'
'-J-Dnetbeans.full.hack=true'
The ' characters around the executable and arguments are
...
因此,要在ant脚本之外运行它,我只需运行:
D:\GITHUB\OtherRepositoryes\NetBeans\nbbuild\netbeans\bin\netbeans64.exe --jdkhome "C:\Program Files\Java\jdk1.8.0_231\jre" --userdir D:\GITHUB\OtherRepositoryes\NetBeans\nbbuild\testuserdir -J-Dnetbeans.full.hack=true