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

时间:2014-02-16 13:38:52

标签: java bash shell ubuntu

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

1 个答案:

答案 0 :(得分:2)

你在bash脚本结束时调用java程序是正确的道路。

我99.9%确定您需要在bash脚本中拨打java -jar而不仅仅是java

java Program $perName $systemCpuUsage $systemMemoryUsage $readingTime

java -jar Program $perName $systemCpuUsage $systemMemoryUsage $readingTime

同样在你的主java类中,我认为你应该为每个语句而不是固定循环调用一个。

for(String arg : args)            
{   
     System.out.println(arg);            
}

我能想到的另一件事是你的bash脚本有问题是没有正确获取变量。您应该尝试echo出结果来调试变量应该在bash脚本中的内容。

修改

ArrayIndexOutOfBoundsException表示您多次循环两次。用a替换它们将告诉你传递了多少变量。当您收到该错误时,表示您的args数组不够大,并且您试图从数组中不存在的部分获取数据。