我想使用ProcessBuilder类通过我的Java Application顺序执行2个或更多命令.我尝试了其他响应/论坛中建议的多个选项,但没有运气.
以下是我尝试过的事情:
ProcessBuilder processBuilder = new ProcessBuilder("ls", ";", "pwd");
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
错误:ls:;:没有这样的文件或目录错误:ls:pwd:没有这样的文件或目录
ProcessBuilder processBuilder = new ProcessBuilder("ls", "&&", "pwd");
Run Code Online (Sandbox Code Playgroud)
给我类似的错误:
错误:ls:&&:没有这样的文件或目录错误:ls:pwd:没有这样的文件或目录
List<String> command = new ArrayList<String>();
command.add("ls");
command.add(";");
command.add("pwd");
ProcessBuilder processBuilder = new ProcessBuilder(command);
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
错误:ls:;:没有这样的文件或目录错误:ls:pwd:没有这样的文件或目录
我的操作系统是Linux/Mac-OSX.
我想控制最大内存,一个进程可以在Mac-OS X 10.8中使用.我觉得设置ulimit -v应该达到目标,但似乎并非如此.我尝试了以下简单的命令:
ulimit -m 512
java -Xms1024m -Xmx2048m SomeJavaProgram
Run Code Online (Sandbox Code Playgroud)
我假设第二个命令应该失败,因为Java Process将通过为自己保留1024MB内存而开始,但它会安静地通过.在我的Sample程序中,我尝试使用以下代码片段分配超过1024MB:
System.out.println("Allocating 1 GB of Memory");
List<byte[]> list = new LinkedList<byte[]>();
list.add(new byte[1073741824]); //1024 MB
System.out.println("Done....");
Run Code Online (Sandbox Code Playgroud)
这两个程序都可以毫无问题地执行.我们如何控制Mac-OS X中程序的最大内存分配?