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 », но как сказать ему, чтобы переключить каталог? это ключ.
ли Chinese_English_Dictionary_PinItem.cmd распределенный внутри той же папки, что и ваша банка? – baudo2048
Это не внутри банки. – Frank