【问题标题】:ProcessBuilder not working on server but work fine on localhost [closed]ProcessBuilder 不在服务器上工作,但在本地主机上工作正常[关闭]
【发布时间】: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 上没有
  • 那些redirectOutputredirectInput 调用在那里有必要吗?

标签: java webserver runtime processbuilder


【解决方案1】:

如果它可能对某人有帮助,我发现启动 glassfish 服务的用户没有在网络上执行的权限。

我把一个具有良好权利的用户放在了 Voilà..

谢谢。

【讨论】:

    猜你喜欢
    • 2015-08-28
    • 2018-03-07
    • 1970-01-01
    • 2021-11-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多