我尝试收集一些有关系统的信息,例如内存使用情况和CPU使用情况,并将其传递给负责将其存储到数据库中的java应用程序。
最佳答案
那么,您在 bash 脚本末尾调用 java 程序的方法是正确的。
我 99.9% 确定您需要在 bash 脚本中调用 java -jar
而不仅仅是 java
。
java Program $perName $systemCpuUsage $systemMemoryUsage $readingTime
java -jar Program $perName $systemCpuUsage $systemMemoryUsage $readingTime
另外,在你的主java类中,我认为你应该调用 foreach 语句而不是固定循环。
for(String arg : args)
{
System.out.println(arg);
}
我能想到的唯一一件事是你的 bash 脚本有问题,没有正确获取变量。您应该尝试回显
结果来调试 bash 脚本中的变量应该是什么。
编辑
ArrayIndexOutOfBoundsException
表示您循环了两次。将其替换为 foreach 将告诉您传递了多少个变量。当您收到该错误时,这意味着您的 args 数组不够大,并且您尝试从数组中不存在的部分获取数据。
关于java - 如何将数据从bash脚本正确传递到java应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21811887/