我试图收集一些关于系统的信息,如内存使用情况和CPU使用情况,并将其传递给负责将其存储到数据库中的java应用程序。
好吧,你走在 bash 脚本末尾调用 java 程序的正确道路上。
我 99.9% 确定您需要调用java -jar
而不仅仅是在您的 bash 脚本中java
。
java Program $perName $systemCpuUsage $systemMemoryUsage $readingTime
java -jar Program $perName $systemCpuUsage $systemMemoryUsage $readingTime
同样在您的主 java 类中,我认为您应该为每个语句调用 a 而不是固定循环。
for(String arg : args)
{
System.out.println(arg);
}
我唯一能想到的另一件事是你的 bash 脚本有问题,没有正确获取变量。您应该尝试echo
出结果,以调试 bash 脚本中的变量应该是什么。
编辑
ArrayIndexOutOfBoundsException
意味着你的循环两次很多次。将其替换为 for each 将告诉您传递了多少个变量。当您收到该错误时,这意味着您的 args 数组不够大,并且您试图从数组中不存在的部分获取数据。