C# 从.NET控制台应用程序打开.exe应用程序

C# 从.NET控制台应用程序打开.exe应用程序,c#,console-application,system.diagnostics,C#,Console Application,System.diagnostics,如果我尝试从.NET控制台应用程序打开记事本,它可以正常工作。 我的做法如下: var p = new Process { StartInfo = { FileName = "c:\windows\system32\notepad.exe"; } }; p.Start(); 当我试图打开我真正想要打开的应用程序时,什么都没有发生。如果我手动打开该应用程序,我会看到一个Java进程正在创建,这意味着它是一个打包为exe文件的Java应用程序 有没有关于如

如果我尝试从.NET控制台应用程序打开记事本,它可以正常工作。 我的做法如下:

var p = new Process
{
    StartInfo =
    {
        FileName = "c:\windows\system32\notepad.exe";
    }
};

p.Start();
当我试图打开我真正想要打开的应用程序时,什么都没有发生。如果我手动打开该应用程序,我会看到一个Java进程正在创建,这意味着它是一个打包为exe文件的Java应用程序

有没有关于如何通过.NET打开Java exe应用程序的想法


提前感谢

假设您有一个名为“HelloWorld”的应用程序。然后,从命令提示符(以及您的代码)中,您可以使用以下命令启动它:

java HelloWorld
现在假设
java
在您的路径中。这是一个错误的假设。因此,您最好使用逻辑来填充
java
的路径,或者对其进行硬编码


如果你打算把这个软件到处传播,我不建议你硬编码一个路径。这从来都不是一件确定的事情……

常规的EXE和“已退出”的Java应用程序之间应该没有太大区别。你试过调整工作目录吗?可能正在解压。

嗯。。。应该没有太大的区别。你试过调整工作目录吗?在调试器中,探索这行
p.Start()之后的
p
的属性。该过程可能已经开始并立即终止。在本例中,您将看到exit code属性。看看这对你有没有帮助,这就解决了Thorsten。我必须将工作目录设置为应用程序所在的根文件夹。你能补充一个答案让我接受吗?谢谢;)为什么这个问题被否决了@但丁:复制了我的评论作为答案。它是一个.exe应用程序,不是一个jar什么的。我可以像其他任何应用程序一样打开它(双击图标,从命令提示符调用它,…),唯一不起作用的地方是从.NET调用它。