为什么 java 可执行文件不接受参数文件?

Why java executable doesn't accept parameter files?

假设我想执行一个 Java 应用程序:

java -cp j1:j2...:j9999 Main arg1 arg2

在这种情况下,java 可执行文件获取过多的参数,在某些操作系统上,由于命令行字符串的长度限制,这些参数可能会导致问题(参见 Maximum Length of Command Line String)。

作为补救措施,javac 提供了 @argfile(参见 here),它允许在文件中指定参数。上面的例子看起来像这样,如果 java 也支持它:

java @FileContainingArguments.txt

FileContainingArguments.txt的内容是:

-cp j1:j2...:j9999
Main
arg1
arg2

那么问题来了,为什么java不支持,而javacjavadoc支持呢?

我不知道为什么它还不支持,但似乎 Open JDK 9 将支持它,一旦它发布: https://bugs.openjdk.java.net/browse/JDK-8027634。我不确定 Oracle。