2016-06-05 9 views
0

My Java приложение запускает команду:Как выполнить команду Runtime в файле jar с USB-накопителя?

String Command="C:\A_Test\Dir_PC_Customizer\Chinese_English_Dictionary_PinItem.cmd"; 
Runtime.getRuntime().exec(Command); 

Я упакованный его в файл Jar и он работает отлично от C:/привод. Но после того, как я скопировал его в USB-брелок, он не будет работать.

И мой файл Chinese_English_Dictionary_PinItem.cmd является:

@echo off 
set ITEM= 
set TASKBAR= 

set ITEM=/item:"C:\A_Test\Dir_Chinese_English_Dictionary\Chinese_English_Dictionary.exe" 
set TASKBAR=/taskbar 

echo on 
:: Pin to Taskbar 
cscript //nologo PinItem.wsf %ITEM% %TASKBAR% 

Когда он запускается из C: /, то результат выглядит следующим образом:

Command = C:\A_Test\Dir_PC_Customizer\Chinese_English_Dictionary_PinItem.cmd 
Result : 
Executing : C:\A_Test\Dir_PC_Customizer\Chinese_English_Dictionary_PinItem.cmd 

C:\Dir_PC_Customizer>cscript //nologo PinItem.wsf /item:"C:\A_Test\Dir_Chinese_English_Dictionary\Chinese_English_Dictionary.exe" /taskbar 
Property item is now = C:\A_Test\Dir_Chinese_English_Dictionary\Chinese_English_Dictionary.exe 
Property taskbar is now = 
Microsoft Deployment Toolkit version: 6.1.2373.0 
------------ Initialization PinItem ------------- 
The /item switch specified with value: C:\A_Test\Dir_Chinese_English_Dictionary\Chinese_English_Dictionary.exe 
The /taskbar switch was specified. 
Function-GetSpecialFolder: Cannot determine special folder for CSIDL_PROFILES 
Item "C:\A_Test\Dir_Chinese_English_Dictionary\Chinese_English_Dictionary.exe" pinned successfully 
------------ Departing PinItem ------------- 
PinItem processing completed successfully. 

Но когда он запущен с USB-накопителя, выход выглядит следующим образом:

Executing : C:\A_Test\Dir_PC_Customizer\Chinese_English_Dictionary_PinItem.cmd 

F:\Dir_PC_Customizer\dist>cscript //nologo PinItem.wsf /item:"C:\A_Test\Dir_Chinese_English_Dictionary\Chinese_English_Dictionary.exe" /taskbar 
Input Error: Can not find script file "F:\Dir_PC_Customizer\dist\PinItem.wsf". 

Примечание: они выполняются один и тот же файл:

C:\A_Test\Dir_PC_Customizer\Chinese_English_Dictionary_PinItem.cmd

они просто исполнение из C:/или F:/

Что очевидна: при запуске из C: /, это: C: \ Dir_PC_Customizer> Cscript

Когда выполняется из F: /, это F: \ Dir_PC_Customizer \ dist> cscript

И сообщение об ошибке говорит: «F: \ Dir_PC_Customizer \ dist \ PinItem.wsf» не найден, поскольку PinItem.wsf и другие несколько файлов находятся в : F: \ Dir_PC_Customizer [и в C: \ A_Test \ Dir_PC_Customizer], а не в dist.

Мой вопрос: если я хочу, чтобы он мог работать с любого диска: C: /, F:/или G: /, что мне делать?

Я предполагаю, что один из способов сделать это - сказать «хотя я бегу в« F: \ Dir_PC_Customizer \ dist », но притворяюсь, что я бегу от« C: \ A_Test \ Dir_PC_Customizer », но как сказать ему, чтобы переключить каталог? это ключ.

+0

ли Chinese_English_Dictionary_PinItem.cmd распределенный внутри той же папки, что и ваша банка? – baudo2048

+0

Это не внутри банки. – Frank

ответ

0

Я нашел ответ, когда запускается приложение, скопировать несколько дополнительных файлов из родительского каталога текущего каталога, так что они будут найдены.

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

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