ProcessBuilder 不在服务器上工作,但在本地主机上工作正常
ProcessBuilder not working on server but work fine on localhost
我正在尝试执行创建自定义文件并将其保存在服务器上的外部 .exe
我的 ProcessBuilder
代码在本地主机上运行良好,但是当我在我的服务器上部署它时,没有创建文档,我的 java 网络服务器没有错误
我尝试使用 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();
}
如果它可能对某人有帮助,我发现启动 glassfish 服务的用户没有在网络上执行的权限。
我给了一个拥有良好权限的用户,瞧瞧..
谢谢。
我正在尝试执行创建自定义文件并将其保存在服务器上的外部 .exe
我的 ProcessBuilder
代码在本地主机上运行良好,但是当我在我的服务器上部署它时,没有创建文档,我的 java 网络服务器没有错误
我尝试使用 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();
}
如果它可能对某人有帮助,我发现启动 glassfish 服务的用户没有在网络上执行的权限。
我给了一个拥有良好权限的用户,瞧瞧..
谢谢。