【发布时间】:2015-12-16 10:08:36
【问题描述】:
我正在尝试将文件从 Java 应用程序服务器移动到数据库服务器。为此,我使用了一个 shell 脚本。为了运行 shell 脚本,我使用 Java 文件中的进程。在尝试使用 putty 在应用程序服务器中作为独立的 java(类文件)时,它正在转移到 DB 服务器。但是从应用程序尝试时,它不起作用,process.waitFor() 正在返回 1.. 需要帮助.???
代码:
Process p = Runtime.getRuntime().exec("sh "+asyncFilePath+"/ManualAdjFileTransfer.sh "+asyncFilePath+ " "+destPath+" "+ destUserId + " " + destIp + " " + asyncFilePath + " ManAdj_File_Transfer.Log");
p.waitFor()
【问题讨论】:
-
独立&应用是什么意思?两者有什么区别?你如何启动调用这个类的应用程序?我的理解是你有两个盒子,你需要将一个文件从一个移动到另一个,逻辑是用 shell 脚本编写的,并且被 Java 类调用?我认为,从我们的角度来看,一个是数据库服务器还是另一个应用程序服务器并不重要?
-
独立意味着我只是在命令提示符下单独运行 java 文件。但应用程序已部署在 jboss 服务器中。这就是我的意思。 stackoverflow.com/users/3850730/sabir-khan
-
那么该应用程序如何调用该独立 Java 类?我的意思是,该类的调用方式与您通过命令提示符执行的方式不同吗?
-
没有 Sabir。我不是从应用程序中独立调用。我只是尝试通过腻子从应用程序服务器框中运行该类。它正在工作。但是当我通过点击链接从网页尝试它时,它不起作用。
-
两种情况下的系统用户是否不同?我的意思是,您是否在不同用户和不同用户下运行的应用程序单独执行(与脚本权限不兼容?)。总而言之,没有固定的规则,需要用日志等调试。