如何在单独的文件中传递Java命令行选项?

时间:2017-08-29 15:16:56

标签: java command-line jvm-arguments

有没有办法启动Oracle的Java.exe并让它从Windows上的文本文件中获取命令行选项?

我希望能做的是这样的事情:

java.exe -optionsFile=myOptionsFile.txt MyClass

其中'myOptionsFile.txt'包含标准Java VM选项列表,例如“-classpath =”我很长的类路径“和”-Dthis = that“等等。

运行Java.exe时必须存在所有选项,因为它是名为VMMap的内存调试工具的目标。 VMMap允许您启动.exe并附加到它以调试本机堆问题。在这种情况下,我无法在运行时生成命令行args或让其他进程为我启动java.exe。

2 个答案:

答案 0 :(得分:0)

您可以使用xargs

给定一个文件arguments.in,其中包含以下内容:

~/dev/code$ more arguments.in
-version

像这样调用:

~/dev/code$ cat arguments.in | xargs $JAVA_HOME/bin/java

生成此输出(即,与调用java -version时相同的输出):

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

注意:这假设您使用的是* nix操作系统或使用Cygwin(或模拟器模拟器,如GOW)。

答案 1 :(得分:0)

简单方法: -

yourclassName=JavaClassName
java `cat myOptionsFile.txt` $yourclassName

在Windows中,这应该可以正常工作。

set /p VAR=<myOptionsFile.txt
java.exe %VAR% yourclassName