【问题标题】:Opening JarFile issue打开 JarFile 问题
【发布时间】:2013-07-14 04:26:33
【问题描述】:

在过去的一个小时里我试图运行一个可执行的 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!

【问题讨论】:

    标签: c# jar executable-jar


    【解决方案1】:

    在命令行中运行 .jar 文件时,省略文件名末尾的 .jar。

    javaw -jar Application
    

    【讨论】:

    • 其实不行——文件必须有jar的扩展名才能运行。刚刚用命令行检查过。
    【解决方案2】:

    我太傻了。真傻。

    我解决了伙计们。在我的代码中,我使用System.IO.Path 来组合我的路径,但这实际上搞砸了路径,以至于javaw 无法识别路径。因此,我将其更改为:

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

    而且效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 2011-05-29
      • 2016-06-27
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      相关资源
      最近更新 更多