java - 如何将数据从bash脚本正确传递到java应用程序

标签 java bash shell ubuntu

我尝试收集一些有关系统的信息,例如内存使用情况和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/

相关文章:

bash - 过滤某个时间范围内的日志文件数据

linux - 这个简单的 bash 命令有什么问题?

bash如何使用grep命令在给定目录中的所有文件中搜索字符串

bash - 有没有办法捕获未找到的 bash 用户命令并对其进行处理?

Linux Bash Shell 脚本 -p 不是有效标识符

bash - 如何禁用 bash 中的特殊字符?

java - Spring Data/Hibernate native 查询返回 null,即使实际查询返回结果

java - onLocationChange() 没有被调用?计算行驶距离 -Android

java - 在jboss中配置ssl

java - FTP - 如果将 WAR 文件显示为网站,则客户端会下载 WAR 文件