Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#System.Diagnostics.Process.Start Cmd Jarsigner_C#_Cmd_Desktop Application_Jarsigner - Fatal编程技术网

C#System.Diagnostics.Process.Start Cmd Jarsigner

C#System.Diagnostics.Process.Start Cmd Jarsigner,c#,cmd,desktop-application,jarsigner,C#,Cmd,Desktop Application,Jarsigner,我想在cmd(命令提示符)上运行C#windows应用程序的特定代码,以生成签名jar文件。 我用了这个密码 System.Diagnostics.Process.Start(@"cmd", @"/K ""c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe"" -keystore filepath.p12 filepath.jar ""alias_name"""); 我在执行此代码时遇到此错误 System.Diagnostics.Proce

我想在cmd(命令提示符)上运行C#windows应用程序的特定代码,以生成签名jar文件。 我用了这个密码

System.Diagnostics.Process.Start(@"cmd", @"/K ""c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe"" -keystore filepath.p12 filepath.jar ""alias_name""");
我在执行此代码时遇到此错误

System.Diagnostics.Process.Start(@"cmd", @"/K ""c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe"" -keystore filepath.p12 filepath.jar ""alias_name""");
错误:

'c:\program' is not recognized as an internal or external command,
operable program or batch file.

如何解决此问题?

从上面的评论中,我了解这可以解决问题:

System.Diagnostics.Process.Start(@"c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe",
    @"-keystore filepath.p12 filepath.jar ""alias_name""");

祝您签名愉快。;-)

无法复制:我使用了
System.Diagnostics.Process.Start(@“cmd”,@“/K”c:\program Files\winrar\winrar.exe“tc:\test.rar”)并且它按预期工作…此代码工作。但是我的jarsigner.exe命令不工作。如果我直接写入cmd,代码工作,并要求输入jar签名的密码。但是我在从Visual Studio执行时遇到了这个错误,原因是没有
System.Diagnostics.Process.Start(@“c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe”,@“-keystore filepath.p12 filepath.jar”“alias_name”“)?它可以工作。为什么其他命令不能工作?System.Diagnostics.Process.Start(@“cmd”,@“/K”“c:…”);不确定,但显然
cmd
无法将其参数完美地分配给
/K
选项后包含的命令。幸运的是,绕过cmd中介并使用process的“通过指定应用程序名称和一组命令行参数启动进程”功能。Start消除了“第三方”的干扰:)执行此代码后,签名者请求输入密码。如果我写密码,cmd屏幕就会消失。我在某个网站上搜索了这个。上面写着put“/K”关键字。我怎么能在这个代码中使用/K?“/K”选项用于“cmd”进程,与jarsigner没有特别关系。但是如果你真的想使用
cmd
,你可以将
“c:\program Files\Java\jdk1.6.0\u 23\bin\jarsigner.exe”-keystore filepath.p12 filepath.jar“alias_name”
写入批处理文件(比如,“signfile.bat”),然后执行
进程启动(“cmd”,“K signfile.bat”)
。。。HTH。如果您想阻止jarsigner询问密码,您需要包括下面的storepass开关
System.Diagnostics.Process.Start(@“c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe”,@“-keystore filepath.p12-storepass TheStorePassword filepath.jar”“alias_name”“)HTH:)