是否可以在Java程序中确定系统限制(如Linux上的ulimit)?

时间:2018-05-26 21:06:17

标签: java

我搜索了一个现有的问题/答案并没有找到任何答案。

在shell脚本中使用ulimit很容易确定进程限制和最大打开文件限制等内容。

但我无法确定ulimit是否可用。如果程序(用Java编写)在Windows上运行,它将由cmd脚本启动(或者如果我们真的有野心的话,可能是PowerShell脚本),并且ulimit肯定不可用。我想用Java来检测和记录,而不是用Java启动脚本。

在Linux上提供的ulimit信息是否可以在跨平台本机Java代码中使用?

1 个答案:

答案 0 :(得分:1)

Java中没有通用API来执行此操作。您总是需要调用某种本机操作系统代码来检索它。您可以做的是根据您运行的操作系统调用不同的脚本:

String osName = System.getProperty("os.name");
if ("Unix".equalsIgnoreCase(osName)) { // call a bash script }
else if ("windows".equalsIgnoreCase(osName)) { // call a PowerShell script }
else if // etc.

某些图书馆,例如Apache Commons Lang3,提供包装器,使其更容易确定当前的操作系统,但要点如上所述。