如何正确地从bash脚本向java应用程序传递数据

如何正确地从bash脚本向java应用程序传递数据,java,bash,shell,ubuntu,Java,Bash,Shell,Ubuntu,我试图收集一些有关系统的信息,如内存使用情况和cpu使用情况,并将其传递给负责将其存储到数据库中的java应用程序。在bash脚本末尾调用java程序的方法是正确的 java Program $perName $systemCpuUsage $systemMemoryUsage $readingTime java -jar Program $perName $systemCpuUsage $systemMemoryUsage $readingTime 我99.9%确定您需要调用java-ja

我试图收集一些有关系统的信息,如内存使用情况和cpu使用情况,并将其传递给负责将其存储到数据库中的java应用程序。

在bash脚本末尾调用java程序的方法是正确的

java Program $perName $systemCpuUsage $systemMemoryUsage $readingTime

java -jar Program $perName $systemCpuUsage $systemMemoryUsage $readingTime
我99.9%确定您需要调用
java-jar
,而不仅仅是在bash脚本中调用
java

java Program $perName $systemCpuUsage $systemMemoryUsage $readingTime

java -jar Program $perName $systemCpuUsage $systemMemoryUsage $readingTime
同样在主java类中,我认为应该调用for-each语句,而不是固定循环

for(String arg : args)            
{   
     System.out.println(arg);            
}
我能想到的另一件事是,bash脚本有点问题,没有正确地获取变量。您应该尝试
echo
输出结果,以调试bash脚本中的变量

编辑
ArrayIndexOutOfBoundsException
表示循环两次。将其替换为for each将告诉您传递了多少个变量。当您遇到该错误时,这意味着您的args数组不够大,您试图从数组中不存在的部分获取数据