2016-06-18 20 views
-2

実行可能なJARファイルである外部プログラムを実行しようとしています。これはダブルクリックで実行できますが、Runtime.exec()を使用すると、ファイルが「Windows32アプリケーションではない」というエラーが表示されます。Java - プロセスエラーの作成= 193

try {  
    String filepath = "C://Users//Name//Desktop//Speedtest.jar";  
    Process p = Runtime.getRuntime().exec(filepath);   
} catch (IOException e) {  
    e.printStackTrace(); 
} 
+0

それはあなたが瓶を実行する方法ではありません。しかし、これを行うにはより良い方法が必要です...このjarにバイトコードが含まれている場合は、クラスパスに追加するのはなぜですか? – Dici

+0

文法とはっきりしています。 –

答えて

0

Jarファイル自体はwin-32アプリケーションではありません。 (実際にはzipファイルのようなものです)

javaは、jarファイルを実行するwin-32アプリケーションです。

だから、あなたはコマンドを使用してjarファイルを実行する必要があります。

java -jar <jar-file> 

あなたはこれを行うことができます:

String filepath = "java -jar C:/Users/Name/Desktop/Speedtest.jar"; 
Process p = Runtime.getRuntime().exec(filepath); 

これは正常に動作する必要があります。

+0

私はこれを試して、stilは動作しません.- – Alex

+1

本当ですが、私はそれをお勧めしません。 Javaプログラム内のコマンドラインからjarを呼び出すことはちょっと厄介です。 – Dici

+0

@Alex編集を参照してください。それは正常に動作するはずです。 – Hackerdarshi

0

あなたはjarファイル内のプログラムにアクセスしたい場合は、あなたのメインプログラム実行時に、ちょうどあなたのクラスパスに追加します。

java -cp /path/to/your.jar package.name.MainClass

(または単にあなたのIDE内のライブラリに追加する)

関連する問題