2017-06-08 11 views
0

これはちょっと変わったのです - 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クラスによって読み取られます。

私は両方のプロジェクト(日食/ビジュアルスタジオ)、全てのクラスなどの実行可能ファイルは、自身と同じディレクトリから設定ファイルを読み込む

+1

作業フォルダが異なるように表示されます。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つ上のレベルだと思います。プログラムが設定ファイルなどを探している場合、これが影響を受ける可能性があります。 –

+0

@RB。 .exeファイルは設定ファイルを探していますが、設定ファイルは.exeファイルと同じ場所にあります。 ExeにはすでにExeが存在するルートディレクトリへの設定解決のための事前定義されたパスがあります。 –

+0

しかし、あなたは.exeファイルと同じディレクトリから.exeファイルを実行していません。 –

答えて

1

それでも同じ問題を再コンパイルを掃除しています。そのディレクトリから実行可能ファイルを実行する必要があります。

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

(。P.S. OracleのJavadocの新しいアプリケーションではなく、実行時のProcessBuilderをを使用することを推奨しています)

+0

あなたの構文はちょっとです。 '..、new File(System.getProperty(" user.dir ")+"/3cx-api-application "));'これは問題を解決していないようです。私はまだエラーが発生します(作業ディレクトリが正しく設定されていないように見えますか?) –

+0

しかし、私はあなたの提案にきちんと答えてくれました:) –

関連する問題