これはちょっと変わったのです - Javaから.exeファイルを実行すると、なぜ.exeを直接実行するのかJavaから.exeを実行すると、別のコンソール出力が表示され、Windowsから直接.exeを実行します。
javaが下の行で実行されると、3CX電話システムで動作するビルドを持った.exeファイルがjavaを起動します。
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-アプリケーションに行くとうまく実行された整然とした-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クラスによって読み取られます。
私は両方のプロジェクト(日食/ビジュアルスタジオ)、全てのクラスなどの実行可能ファイルは、自身と同じディレクトリから設定ファイルを読み込む
作業フォルダが異なるように表示されます。http://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#exec-java.lang.String-java.lang.String:A-java.io.File-
てみてくださいを参照してください。私は、Javaアプリケーションでは、作業フォルダがexeファイルを直接実行するより1つ上のレベルだと思います。プログラムが設定ファイルなどを探している場合、これが影響を受ける可能性があります。 –
@RB。 .exeファイルは設定ファイルを探していますが、設定ファイルは.exeファイルと同じ場所にあります。 ExeにはすでにExeが存在するルートディレクトリへの設定解決のための事前定義されたパスがあります。 –
しかし、あなたは.exeファイルと同じディレクトリから.exeファイルを実行していません。 –