1

タイトルが要点をカバーしていることを願っています。この種のことについて複数の投稿があることは承知しています。私が特に抱えている問題は、クラスを含む現在実行中の 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();

正しい方向へのポインタは大歓迎です。

ありがとう、

4

1 に答える 1