2016-12-25 27 views
0

Javaアプリケーションで外部jarを実行しようとしています。 .jarは私のjava-package( "gui")にあります。 私が試み:ProcessBuilder:javaパッケージ内の.jarを開始

  String filepath = this.getClass().getResource("ServerRSS.jar").getPath(); 
      ProcessBuilder pb = new ProcessBuilder("java", filepath); 

のSystem.out.println(ファイルパス)。結果:

/C:/Users/hox/workspace/PraktikumProg/bin/gui/ServerRSS.jar 

プログラムが起動しません。問題は、C:の前にスラッシュにすることができますか?

EDIT: 解決した

URL filepath = this.getClass().getResource("ServerRSS.jar"); 
ProcessBuilder pb; 
pb = new ProcessBuilder("java", "-jar", new File(filepath.toURI()).toString()); 
Process p = pb.start(); 
+0

私は自分の答えを強化しました。それが助けになるなら、いくつかのフィードバックを与えてください! – GhostCat

答えて

1

まず、単純にコマンドラインで...あなたのコマンドの作業を取得。

そして、ProcessBuilderを使用してJava内から実行してみます。

簡単な答えはおそらく:-jarを使用すると、javaを呼び出すときです。

java someJar.jar 

は機能しません。

はい、そのスラッシュは大きな問題です。そこには完全に正しいファイルパスが必要です。

最後に、いくつかのクラスでmainメソッドを実行するために新しいJVMを開始したいと思いますか? 2番目のJVMを使用するとパフォーマンスと複雑さが増すことなく、現在のJVM内で実行できます。

関連する問題