2

を呼び出すこのコードがありますjava -cp somejar.jar com.company.mainClass。プロセスビルダーを使用して呼び出しています。Windowsでは、正常に動作します。Linuxでは、エラーが発生します

メイン クラス com.company.mainClass が見つからないか、読み込めませんでした。

これが私のコードのサンプルです:

ArrayList<String> args = new ArrayList<String>();
args.add(java);
args.add("-cp");
args.add("../dep/jetty-distribution-8.1.1.v20120215/lib/*;../build/jar/somejar.jar");
//args.add("../build/jar/LRM.jar");
args.add("com.company.mainClass");
ProcessBuilder processBuilder = new ProcessBuilder(args);
Process process = processBuilder.start();

Windows と Linux で動作が異なる理由を知っている人はいますか?

4

2 に答える 2

3

Unixではコロンですが、パス区切りとしてセミコロンを使用しています。

File.pathSeparatorChar代わりに使用

于 2012-04-13T18:02:54.190 に答える
2

Linux ではクラスパス (-cp) の項目はコロンで区切り、:Windows ではセミコロンで区切る必要があり;ます。また、Windows のパス区切り文字はスラッシュではなくバックスラッシュです。File.separatorスラッシュでも機能するはずですが、クラスパスを で構築します。

于 2012-04-13T18:02:44.190 に答える