从 C# 执行 .jar 文件但它在错误的位置生成文件
execute a .jar file from C# but it generates files at wrong location
我用 C# WinForms 编写了一个 Minecraft Server Runner,它可以让你 运行 一个 Minecraft Server,一个需要生成文件的 .jar 文件。问题是我通过 .exe 应用程序启动这个 .jar 文件,并且文件在 .exe 应用程序位置生成。
-- 我试过的:
我尝试将 .exe 应用程序移动到特定的服务器文件位置,但应用程序需要重新启动才能注册此更改,我不希望发生这种情况。
我也不希望用户被迫将 .exe 应用程序放入服务器文件夹并重新启动它。这是我用来启动 .jar 文件的代码:
Process.Start("C:\user\documents\server\server.jar");
我该如何解决这个问题?
jar文件可以被java -jar filename.jar
执行。因此,使用以下 Process.Start 调用来调用 jar。
Process.Start("java", "-jar C:\user\documents\server\server.jar", username, password, domain);
希望对您有所帮助。
P.S:要使其正常工作,请将 Java 添加到您的路径或使用 java.exe 的路径调用。
为了解决这个问题,我通过 CMD 在 C# 应用程序中执行了 .jar 文件。
这是我使用的代码:
string path = @"C:\user\documents\server\"; //Path to your server.jar file.
var process = new System.Diagnostics.Process();
process.StartInfo.FileName = path + "server.jar"; //Name of the .jar file.
process.StartInfo.WorkingDirectory = path;
process.StartInfo.UseShellExecute = true;
process.Start();
所有功劳归于“Olivier Rogier”(https://whosebug.com/users/12031933/olivier-rogier) 帮助我找到这个解决方案
我用 C# WinForms 编写了一个 Minecraft Server Runner,它可以让你 运行 一个 Minecraft Server,一个需要生成文件的 .jar 文件。问题是我通过 .exe 应用程序启动这个 .jar 文件,并且文件在 .exe 应用程序位置生成。
-- 我试过的:
我尝试将 .exe 应用程序移动到特定的服务器文件位置,但应用程序需要重新启动才能注册此更改,我不希望发生这种情况。
我也不希望用户被迫将 .exe 应用程序放入服务器文件夹并重新启动它。这是我用来启动 .jar 文件的代码:
Process.Start("C:\user\documents\server\server.jar");
我该如何解决这个问题?
jar文件可以被java -jar filename.jar
执行。因此,使用以下 Process.Start 调用来调用 jar。
Process.Start("java", "-jar C:\user\documents\server\server.jar", username, password, domain);
希望对您有所帮助。
P.S:要使其正常工作,请将 Java 添加到您的路径或使用 java.exe 的路径调用。
为了解决这个问题,我通过 CMD 在 C# 应用程序中执行了 .jar 文件。 这是我使用的代码:
string path = @"C:\user\documents\server\"; //Path to your server.jar file.
var process = new System.Diagnostics.Process();
process.StartInfo.FileName = path + "server.jar"; //Name of the .jar file.
process.StartInfo.WorkingDirectory = path;
process.StartInfo.UseShellExecute = true;
process.Start();
所有功劳归于“Olivier Rogier”(https://whosebug.com/users/12031933/olivier-rogier) 帮助我找到这个解决方案