Я использую ProcessBuilder для запуска исполняемого файла Windows ... Точная команда, которую мне нужно запустить: < /p>
"C:\Program Files\CCBU\CCBU.exe" -d"C:\My Data\projects\ccbu\ciccb-report.xls" -tf"C:\Program Files\CCBU\loss-billing-filters.txt"
< /code>
Если я запускаю вышеуказанную команду из командной строки, он работает нормально. : < /p>
[log-snippet]
2015-08-31 10:39:08,937 [main] INFO rpd.primary - C:\Program Files\CCBU\CCBU.exe
logging to the given report's directory
Configuration file is: ./CCBUConfigFile.txt
Running with the following settings:
Report Filepath: C:\My
Search Terms FilePath: C:\Program
2015-08-31 10:39:08,948 [main] INFO rpd.primary - STDERR:--------------------
2015-08-31 10:39:08,961 [main] INFO rpd.primary -
Warning: parameter Data\projects\ccbu\ciccb-report.xls not recognized. Ignoring
Warning: parameter Files\CCBU\loss-billing-filters.txt not recognized. Ignoring
Error: C:\Program not found or not readable
[/log-snippet]
< /code>
Если я перемещаю файлы данных и фильтры в путь каталога без пробелов, это работает нормально: < /p>
"C:\Program Files\CCBU\CCBU.exe" -d"C:\Users\n0002501\ccbu\ciccb-report.xls" -tf"C:\Users\n0002501\ccbu\loss-billing-filters.txt"
< /code>
Проблема заключается в том, что пользователи этого процесса будут размещать файлы в папки (каталоги), которые имеют места. Так что каким -то образом я должен заставить его работать с пространствами. Я думаю, что это что-то простое, но чего мне не хватает? // Split the Arguments :
// In Eclipse and runtime, the arguments get broken :
// The STDOUT from the command shows the Report Filepath
// and Search Teams FilePath as broken at the 1st space...
//
// Report Filepath: C:\My
// Search Terms FilePath: C:\Program
//
// SHOULD BE :
//
// Report Filepath: C:\My Data\projects\ccbu\ciccb-report.xls
// Search Terms FilePath: C:\Program Files\CCBU\loss-billing-filters.txt
//
try {
commands.add ( "\"C:\\Program Files\\CCBU\\CCBU.exe\"" );
commands.add ( "-d\"C:\\My Data\\projects\\ccbu\\ciccb-report.xls\"" );
commands.add ( "-tf\"C:\\Program Files\\CCBU\\loss-billing-filters.txt\"" );
commandExecutor = new SystemCommandExecutor(commands);
commandExecutor.setLog ( getLog() );
// DEBUG : Build and printout the commands...
//
lstrCommand = "";
for ( int theIdx=0; theIdx
jayan, окончательный код, который работает: < /p>
try {
commands.add ( "C:\\Program Files\\CCBU\\CCBU.exe" );
commands.add ( "-dC:\\My Data\\projects\\ccbu\\ciccb-report.xls" );
commands.add ( "-tfC:\\Program Files\\CCBU\\loss-billing-filters.txt" );
commandExecutor = new SystemCommandExecutor ( commands );
commandExecutor.setLog ( getLog() );
< /code>
Все, что мне нужно было сделать, это вывести все двойные цитаты и позволить процессу строителя обрабатывать пути каталога самостоятельно ... < /p>
tia, adym < /p>
Подробнее здесь: https://stackoverflow.com/questions/323 ... otes-fails
Java - Arding Command Command Arguments с пробелами и двойными циклами не сбои ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Junit Arguments.of() не принимает реализацию пользовательского интерфейса Java
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Junit Arguments.of() не принимает реализацию пользовательского интерфейса Java
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Может ли Apache Fury сериализовать неориентированный граф Java (отношения с циклами)?
Anonymous » » в форуме JAVA - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-