我知道当我们从命令行/终端执行应用程序时存在字符串限制,这取决于操作系统。
但是,如果我们使用 Java ProcessBuilder 来执行应用程序,是否有任何最大字符串长度可以作为 java ProcessBuilder 中的参数传递?
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
谢谢
最佳答案
如果您查看 ProcessBuilder 源代码,流程创建将委托(delegate)给操作系统特定的 java.lang.ProcessImpl
。
例如 Windows 版本的 ProcessImpl
调用 CreateProcess在 Win API 中,传递命令行字符串。参数 lpCommandLine
的文档指出:“此字符串的最大长度为 32,768 个字符”。
所以是的,会有操作系统特定的长度限制,具体取决于创建进程的操作系统功能。
关于java - java processbuilder中字符串参数的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202468/