我正在开发一个 C# 应用程序,它可以访问控制台来运行 java 命令并执行特定的 jar,但是当我运行该程序时,执行的 jar 文件会在程序输出上生成其文件,例如日志和配置,但我想运行特定文件夹中已有的 jar 及其文件。
问题是我尝试了很多 java 参数,但是从 jar 生成的输出文件每次都会从我的 Visual Studio 项目发送到我的 Debug 文件夹。
希望有人理解我,我对我的英语感到非常困惑和抱歉,我是巴西人 暂时先谢谢大家的支持!
我只能猜测,因为缺少用于从 C# 程序中调用 java 程序的代码行。目前还不清楚您到底想要实现什么目标。决定更改子进程中的“当前工作目录”还是主进程中的“当前工作目录”。
我假设你想使用类似这样的代码来执行这样的事情
java -jar path\to\some.jar
:
using System.Diagnostics;
//...
ProcessStartInfo p = new ProcessStartInfo();
p.Arguments = new string[]{"-jar", "path\to\some.jar";
p.FileName = "java.exe";
p.WindowStyle = ProcessWindowStyle.Hidden;
p.CreateNoWindow = true;
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
}
改编自此处
然后你可以添加这一行
p.WorkingDirectory = "path\to";
改编自此处
使用特定的当前工作目录设置
p
实例覆盖的子进程。这将为调用您的 java
子进程设置当前工作目录。
要为周围的主进程设置当前工作目录,请将此行添加到您的程序中:
System.IO.Directory.SetCurrentDirectory("some\other\path");
SetCurrentDirectory