0

過去 1 時間、実行可能な jar を実行しようとしましたが、標準エラーが発生しましCannot access jarfile <jarpath>た。しばらくして、パスにスペースが含まれているため、引用符の問題であると判断しました。

ただし、パスを文字列変数に格納し、jar へのパスを含む文字列を二重引用符で連結しようとすると、まだ失敗します。これをどのように解決すればよいですか?

説明する:

string path = /* %appdata% folder */ + ""\\Application Name\\" + "Application.jar";

//add the double quotes
path = path + "\"";
path += "\"";

Process javaProcess = new Process()

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "javaw";
startInfo.Arguments = @"-jar " + path;

//startInfo.Arguments = @"-jar" + "\"C:...\\Application\\Application.jar\"";
//this one works, though

javaProcess.StartInfo = startInfo;
javaProcess.Start(); //Fails - cannot access jarfile!
4

2 に答える 2

0

コマンド ラインで .jar ファイルを実行する場合、ファイル名の末尾にある .jar を省略します。

javaw -jar Application
于 2013-07-14T04:32:15.733 に答える
0

私は愚かです。本当にばか。

私はそれを解決しました。私のコードでは、以前はパスを結合していましたが、実際にはパスを認識できないほどSystem.IO.Pathパスが台無しになりました。javawしたがって、次のように変更しました。

string path = "\"" + %appdata% + fileName + "\"";

そして、それはうまく機能します。

于 2013-07-14T04:45:30.420 に答える