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

标签 java c# windows eclipse exe

所以这个有点奇怪 - 为什么从 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/

相关文章:

java - Hibernate 中的自增

c# - 在同一个项目中同时使用 AddDbContextFactory() 和 AddDbContext() 扩展方法

c# - 与 Autofac 并行运行 xUnit 集成测试时无法加载类型 CaSTLe.Proxies.IReadinessProxy

c# - 从 URL 获取整个字符串,包括非查询字符串 C#

linux - 执行脚本后,PowerShell 窗口始终会被清理

WaitForSingleEvent 可以等待事件重置吗?

java - 我无法使文本文件出现在我的 JTextArea 中

java - Jexcel公式计算错误

Java:键绑定(bind)被其他组件消耗

windows - 如何转义批处理文件中的符号?