【发布时间】:2023-03-06 13:17:02
【问题描述】:
我正在尝试执行一个创建自定义文件并将其保存在服务器上的外部 .exe,我可以
ProcessBuilder 的代码在 localhost 上运行良好,但是当我在服务器上部署它时,文档没有创建,我的 java web 服务器没有错误
我尝试使用 ProcessBuilder 的环境变量,但运气不好,仍然无法正常工作
我没有想法
请帮我解决一下
这是我在本地主机上运行良好的 processBuilder 代码
try {
ProcessBuilder processBuilder = new ProcessBuilder("pathtoExe\\executable.exe");
processBuilder.redirectErrorStream(true);
processBuilder.redirectOutput();
processBuilder.redirectInput();
Process process = processBuilder.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
String s;
System.out.printf("Output of running is:");
while ((line = br.readLine()) != null) {
System.out.print("ligne out: ");
System.out.println(line);
}
BufferedReader stdError = new BufferedReader(
new InputStreamReader(process.getErrorStream()));
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
process.waitFor();
System.out.println(process.exitValue());
}
catch (IOException| InterruptedException e) {
e.printStackTrace();
}
【问题讨论】:
-
收到错误信息?
-
我没有收到任何错误消息,exitvalue 为 0 我的代码在本地主机上工作,但是当我部署在我的 glassfish 服务器上时它什么也不做
-
巧合的是,那个 glassfish 服务器是驻留在 Linux 上的吗?
-
在 windows server 2008 上没有
-
那些
redirectOutput和redirectInput调用在那里有必要吗?
标签: java webserver runtime processbuilder