ProcessBuilderを使用してプロジェクトでクラスを実行する際に問題が発生します。 マイコード:Java ProcessBuilder
public class Main {
public static void main(String[] args) {
try {
String pathToJar = Main.class.getProtectionDomain().getCodeSource()
.getLocation().toURI().getPath();
ArrayList<String> params = new ArrayList<String>();
params.add("javaw");
params.add("-classpath");
params.add(pathToJar);
params.add("Program");
ProcessBuilder pb = new ProcessBuilder(params);
Process process = pb.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
クラスのプログラムは、同じプロジェクト(同じbinフォルダ)にあり、直接実行した場合正常に動作しますが、私はエラーを取得するこの方法は、「メインクラスが見つかりませんでした:プログラム」。私のコードのどこにエラーがありますか?
ありがとうございます。
[編集] 私はプログラムクラスのいくつかのコードがエラーを出しているという結論に至りました。基本的には、「クリーン」メインでのみ実行されます。 eclipseでは、Programクラスはjarファイルの中にあるいくつかのライブラリをインポートしています。 ProcessBuilderで参照する必要はありませんか?もしそうなら、どうですか?
***パッケージ***はクラス 'プログラム'ですか? 'params.add(" Program ");'で完全修飾クラス名を指定する必要があります。 –
パッケージを持つクラスはありません。いずれにしても、変更された 'build.test package 'の両方に' params.add( "build.test.Program"); 'という名前を付けました。まだ同じエラー – Ciro
'pathToJar'の値を出力しようとしましたか?それはあなたが期待するものですか? –