2017-01-25 206 views
0

我正在开发一个C#应用程序,它有权访问控制台来运行java命令并执行特定的jar,但是当我运行该程序时,正在执行的jar文件在程序输出上生成他的文件,如日志和配置,但我想运行已经在他的文件的特定文件夹中的jar 问题是我尝试了很多java参数,但是从jar生成的输出文件每次都会从我的visual studio项目中进入Debug文件夹 Hope任何人都能理解我,我非常困惑和为我的英语感到抱歉,我是巴西人 现在,感谢您的支持!Jar文件类路径问题

+2

您应该设置当前工作目录与调用的程序在调用它之前所期望的内容。 –

+0

是的,我只是想一想,但我如何设置jar的工作目录?我尝试使用-cp参数,但没有结果 –

+0

您必须在调用java命令的周围环境中执行此操作。 –

回答

2

我只能猜测,因为缺少用于在C#程序中调用java程序的代码行。目前还不清楚你想要达到什么目的。决定是在更改孩子还是主流程中的“当前工作目录”。

子进程

我假设你想使用类似的代码来执行这样的事情java -jar path\to\some.jar:从here

改编

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"; 

改编自here

p实例覆盖与特定的当前工作目录设置你的孩子的过程。这将设置当前工作目录以调用java子进程。

主要工艺

要设置为周围的主要工序中当前的工作目录此行添加到您的程序:

System.IO.Directory.SetCurrentDirectory("some\other\path"); 

MSDN文档SetCurrentDirectory