0

Java でファイルを実行したいのです.jarが、例外が発生して動作しません。ディレクトリC:/Users/Administrator/Desktop/apache-solr-4.0.0/exampleに、 start.jarというファイルがあります。これは私の最後の例ですが、例外がスローされます。修正するにはどうすればよいですか?

public void runStart()  {
    try {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");
    } catch (IOException ex) {
        Logger.getLogger(SolrForm.class.getName()).log(Level.SEVERE, null, ex);
    }
}
4

4 に答える 4

3

コマンドラインでexec する必要がありjava -jarます。そうしないと、実際には何も実行されません。

例えばrt.exec("java -jar myjar.jar");

ああ、プロセスが完了するまで待つ必要があります。そうしないと、スコープから外れたときに予期せず終了する可能性があります。

于 2012-12-03T10:34:37.383 に答える
2

そのコマンドをコンソールで実行しようとすると、それも機能しません。jarファイルはそれ自体では実行可能ファイルではありませんが、Javaで実行できます。

このようにしてみてください:

public void runStart()  {
    try {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("java -jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");
    } catch (IOException ex) {
        Logger.getLogger(SolrForm.class.getName()).log(Level.SEVERE, null, ex);
    }
}

このようにして、Javaを起動し、jarを指定します。Javaがパス(または現在のディレクトリ)にある場合は、機能するはずです。

于 2012-12-03T10:39:10.467 に答える
1

ファイルのみを渡します。つまり、実行可能アプリケーションに注意してください。Java環境が構成されていると仮定すると、行を次のように変更する必要があります。

Process p = rt.exec("java - jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");
于 2012-12-03T10:35:13.583 に答える
0

次のようなもので試してください:

rt.exec("c:\\java_path\\bin\\java -jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");

c:\\java_path\\bin\\java必ずJavaバイナリへの実際の絶対パスに置き換えてください。

于 2012-12-03T10:37:19.543 に答える