2017-01-25 5 views
0

Я разрабатываю приложение C#, у которого есть доступ к консоли для запуска java-команды и выполнения конкретной jar, но когда я запускаю программу, исполняемый файл jar генерирует его файлы на выходе программы, например журналы и но я хочу запустить jar, который уже находится в конкретной папке со своими файлами. Проблема в том, что я пробовал много аргументов java, но сгенерированные выходные файлы из jar каждый раз обращаются к моей папке Debug из моего проекта visual studio. Hope кто меня понял, я очень смущен и извиняюсь за свой английский, я бразильский На данный момент, спасибо за вашу поддержку!Проблемы с файловыми классами Jar file

+2

Вы должны установить текущую работу который ожидает ожидаемая программа перед ее вызовом. –

+0

да, я просто думаю об этом, но как я установил рабочий каталог для банки? Я попытался с аргументом -cp, но результата нет –

+0

Вы должны сделать это в окружении, где вы вызываете команду java. –

ответ

2

Я могу только догадываться, потому что строки кода отсутствуют, что вы используете для вызова java-программы из вашей программы на C#. Также неясно, чего именно вы пытаетесь достичь. Решите между изменением «текущей рабочей директории» в дочернем или в основном процессе.

дочерний процесс

Я предполагаю, что вы хотите, чтобы выполнить что-то вроде этого 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(); 
} 

адаптировано из here

Тогда вы можете просто добавить эту строку

p.WorkingDirectory = "path\to"; 

адаптировано из here

для настройки вашего дочернего процесса, охваченного например p с конкретной текущей рабочей директории. Это установит текущий рабочий каталог для вызова вашего дочернего процесса java.

основной процесс

Чтобы установить текущий рабочий каталог для окружающей основного процесса добавьте эту строку в программе:

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

MSDN Документация для SetCurrentDirectory

 Смежные вопросы

  • Нет связанных вопросов^_^