タイトルが要点をカバーしていることを願っています。この種のことについて複数の投稿があることは承知しています。私が特に抱えている問題は、クラスを含む現在実行中の jar のクラスパスを設定する方法です。
つまり、Maven アセンブリ プラグインを使用して、すべての依存関係が展開された状態で jar をパッケージ化しました。したがって、jar 内から、jar に存在する依存関係クラスの 1 つを実行するサブプロセスを作成しようとしています。それが可能なら?
以下の投稿のおかげで、解決策は次のとおりです。
URL baseUrl = getClass().getProtectionDomain().getCodeSource().getLocation();
String myPath = (new File(baseUrl.toURI())).getCanonicalPath();
ProcessBuilder pb = new ProcessBuilder("javaw", "-cp", myPath,
"jp.vmi.selenium.selenese.Main", config.getSuite().getAbsolutePath());
pb.redirectErrorStream(true);
try
{
Process proc = pb.start();
InputStream is = proc.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
int c;
while ((c = bis.read()) != -1)
{
System.out.write(c);
}
int exit = proc.waitFor();
正しい方向へのポインタは大歓迎です。
ありがとう、