Я бегу приложение Java (app1), который работает несколько экземпляров другого приложения Java (app2) параллельно с использованием ProcessBuilder и Fixed пул потоков со следующим кодом:Java: Получить рабочую директорию текущего процесса строитель
futures = new ArrayList<Future<String>>();
executor = Executors.newFixedThreadPool(10);
for (int i=0; i<cnt;i++)
{
ProcessBuilder builder = new ProcessBuilder();
builder.command("java","app2"); //I set the class path in the real code
builder.directory(new File("/Users/Evan/Documents/workspace/MyProj/ins_"+i));
builder.inheritIO();
ProcessRunner pr=new ProcessRunner (builder);
futures.add(executor.submit(pr));
}
Каждый запуск приложения 2 имеет различный рабочий каталог (значение i в папке ins_i отличается для каждого запуска). Код работает, но теперь в app2 я хочу прочитать файл из рабочего каталога текущего процесса (т.е./Users/Evan/Documents/workspace/MyProj/ins _ "+ i). Поэтому в коде приложения 2 мне нужно заявление что дайте мне знать директорию текущего строителем процесса (в основном значение I в "/ Users/Evan/Документы/рабочего пространства/MYPROJ/INS _" + я)
Я попробовал это утверждение:.
System.getProperty("user.dir")
и это не сработало, потому что он извлекается «/ Users/Evan/Документы/рабочее пространство/MYPROJ»
Спасибо, и я признателен за любую помощь
Что такое 'ProcessRunner'? Что он на самом деле делает, когда он работает? – Kenster