0

又回来了,这次是一个 java 问题。有人告诉我如何让 Processbuilder 运行非本地脚本(调用将运行脚本的程序),但我一直在尝试运行 java 脚本并遇到了几个问题。首先,我应该使用 .class 还是 .jar?这两个都可以运行,但我不确定哪一个会更好。然后我该如何正确执行它们?我试过调用java(/usr/lib/jvm/java-6-openjdk/jre/bin/java),然后将文件路径提供给类文件,但这似乎不起作用。

有任何想法吗?

4

2 回答 2

1

我同意 sarnold 的 .jar 问题。在使用ProcessBuilder执行代码方面,你可以执行一个.jar文件,只要这个文件包含一个main()方法,并且有Main-Classmanifest header,可以在创建.jar时生成。创建 .jar 后,您将使用如下命令运行 .jar:

java -jar jar_file_name_here.jar

如果你有多个主类并且你想运行一个特定的类,你可以使用这样的命令:

java -jar jar_name.jar com.main.class.package.path.here.SomeClassName

您是在尝试执行其他人的 .jar,还是您自己想要在脚本中执行?出于好奇,您为什么要使用脚本?

于 2011-01-26T00:51:15.077 回答
0

您需要 -jar 和具有命名主类的清单的 jar 的路径名,或 -cp 与标准布局中包含您的类的目录的路径名,或 -cp 与 jar 的路径名后跟带有 main 的类的名称。

java -jar I_AM_A_JAR_WITH_A_MANIFEST.jar

java -cp I_AM_JAR_1.jar:I_AM_JAR2.jar... this.is.my.FooClass

java -cp dir_path1:dir_path2:dir_path3 this.is.my.FooClass

其中“dir_pathN”是具有标准类层次结构的目录。

于 2011-01-26T00:52:12.750 回答