java - java processbuilder中字符串参数的最大长度

标签 java processbuilder

我知道当我们从命令行/终端执行应用程序时存在字符串限制,这取决于操作系统。
但是,如果我们使用 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/

相关文章:

Java: isBinary 方法的类是什么?

java - 家谱,无法解析 child

java - 不同 xmls/root 中 JAXB 中子元素的共享类

java - 将路径存储在属性文件中

java - 使用 Java ProcessBuilder 与 SQLite shell 交互

java - 与谷歌整合加上 : initializing google plus API client client is not working

java - 无法使用 ProcessBuilder 从 Java 执行 exe 文件

java - ProcessBuilder:如果没有 "redirectOutput",进程就无法完成

java - 为什么我重新启动的 Java 程序会失去键盘焦点?

java - processbuilder - linux - 提示未在输出流中捕获