2016-06-05 4 views
0

Meine Java-Anwendung führt einen Befehl wie folgt aus:Wie führe ich einen Runtime-Befehl in einer JAR-Datei von einem USB-Laufwerk aus?

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

ich es in eine Jar-Datei gepackt und es läuft von C fein:/Laufwerk. Aber nachdem ich es in ein USB-Stick-Laufwerk kopiert habe, wird es nicht ausgeführt.

Und meine Chinese_English_Dictionary_PinItem.cmd Datei ist:

@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% 

Wenn es von C laufen gelassen:

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. 

Aber wenn es laufen von einem USB-Laufwerk, dem Ausgang: /, die Ausgabe wie folgt aussieht sieht wie folgt aus:

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". 

Hinweis: sie die gleiche Datei ausgeführt werden:

C:\A_Test\Dir_PC_Customizer\Chinese_English_Dictionary_PinItem.cmd

sie ausgeführt werden nur von C:/oder von F:/

Was offensichtlich ist, ist: wenn man von C laufen: /, es ist: C: \ Dir_PC_Customizer> cscript

Wenn run von F: /, es ist F: \ Dir_PC_Customizer \ dist> cscript

Und die Fehlermeldung sagt: "F: \ Dir_PC_Customizer \ dist \ PinItem.wsf" nicht gefunden, weil PinItem.wsf und andere wenige Dateien sind : F: \ Dir_PC_Customizer [und in C: \ A_Test \ Dir_PC_Customizer], nicht in dist.

Meine Frage ist: Wenn ich es von jedem Laufwerk laufen lassen möchte: C: /, F:/oder G: /, was soll ich tun?

Ich denke, ein Weg, es zu tun, ist es zu sagen "obwohl ich" F: \ Dir_PC_Customizer \ dist "laufen, aber vorgeben, ich laufe von" C: \ A_Test \ Dir_PC_Customizer ", aber wie sagen, es Verzeichnis zu wechseln? das ist der Schlüssel.

+0

ist Chinese_English_Dictionary_PinItem.cmd verteiltes innerhalb des gleichen Ordners wie dein Glas? – baudo2048

+0

Es ist nicht innerhalb des Glases. – Frank

Antwort

0

ich die Antwort gefunden, wenn die App läuft, die paar Dateien aus übergeordneten Verzeichnis in das aktuelle Verzeichnis kopieren, damit sie gefunden werden.