gpt4 book ai didi

java - 从 Java 运行 .exe 会提供与直接从 Windows 运行 .exe 不同的控制台输出

转载 作者:行者123 更新时间:2023-12-02 12:56:08 27 4
gpt4 key购买 nike

所以这个有点奇怪 - 为什么从 Java 运行 .exe 文件会给出不同的输出而不是直接运行 .exe。

当 java 在下面的行执行时,它会调用我构建的可与 3CX 电话系统配合使用的 .exe 文件。

p = Runtime.getRuntime().exec("3cx-api-application/orderly-3cx.exe");

当从 java/eclipse/jar 文件执行代码时,会打印以下错误。

INFO: 3CX Initialization Started
Jun 08, 2017 1:58:19 PM com.orderlysoftware.threecx.Orderly3CXConnector threeCXinit
INFO: Sending: Initializing 3cx-Orderly Connector
Jun 08, 2017 1:58:28 PM com.orderlysoftware.threecx.Orderly3CXConnector threeCXinit
SEVERE: SEVERE:
Jun 08, 2017 1:58:28 PM com.orderlysoftware.threecx.Orderly3CXConnector threeCXinit
SEVERE: SEVERE: Unhandled Exception: TCX.Configuration.Exceptions.PhoneSystemException: ConfigServer is not connected
Jun 08, 2017 1:58:28 PM com.orderlysoftware.threecx.Orderly3CXConnector threeCXinit
SEVERE: SEVERE: at TCX.Configuration.PhoneSystem.Connect()

现在,当我进入 3cx-api-application 并单击 orderly-3cx.exe 直接导航到 .exe 文件时,程序执行得很好,给出了以下输出。

注意:两个输出上的“初始化 3cx-orderly 连接器”行。

Initializing 3cx-Orderly Connector
Program Initialized
Initialize Monitor
*0 NOT REGISTEREDVMB(0/0)
a length: 0
*1 NOT REGISTEREDVMB(0/0)
a length: 0

更奇怪的是,这曾经在 java 中运行,但现在不行了。所有 .exe 文件应该做的就是连接到 3CX API 并将一些输出打印到控制台,然后该输出应该由 java 类读取。

我已经清理了两个项目(eclipse/Visual Studio),重新编译了所有类等。仍然是同样的问题

最佳答案

可执行文件从与其自身相同的目录中读取配置文件。您需要从该目录运行可执行文件。请参阅http://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#exec-java.lang.String-java.lang.String:A-java.io.File-

尝试:

p = Runtime.getRuntime().exec("orderly-3cx.exe", null, "3cx-api-application");

(P.S. Oracle 的 Javadoc 建议新应用程序应使用 ProcessBuilder 而不是 Runtime。)

关于java - 从 Java 运行 .exe 会提供与直接从 Windows 运行 .exe 不同的控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44436586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com