为什么'ulimit -a'通过Runtime.exec()以不同方式返回,直接在bash下运行它,感谢任何指针。
爪哇: 打开文件(-n)65536
bash-3.00 $ ulimit -a: 打开文件(-n)256
public class TestUlimit {
public TestUlimit() throws IOException, InterruptedException {
Runtime runTime = Runtime.getRuntime();
Process p = runTime.exec(new String[] { "bash", "-c", "ulimit -a" });
InputStream in = p.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("Result of Process p = runTime.exec(new String[] { \"bash\", \"-c\", \"ulimit -a\" });");
while ((line = br.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
p = runTime.exec("ulimit -a");
in = p.getInputStream();
isr = new InputStreamReader(in);
br = new BufferedReader(isr);
System.out.println("Result of p = runTime.exec(\"ulimit -a\");");
while ((line = br.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
}
答案 0 :(得分:0)
bash执行自己的ulimit命令?检查.profile,.bashrc等。
答案 1 :(得分:0)
ulimit
是内置的shell,其默认值基于shell的配置。 Java可能使用除bash之外的默认shell。即使不是这种情况,也可能是你有一些设置,例如.profile
,当你有一个命令行时调用,而不是以编程方式运行shell时调用。