Wie rufe ich eine Java-Prozess von Windows Powershell?
Ich habe Probleme beim ausführen eines Java-Programms mit Windows Powershell 2.0.
Jede Hilfe auf diesem würde sehr geschätzt werden. Ich möchte den string
"Hallo Welt!" zu drucken, die den Powershell-Konsole-Fenster.
Statt, die immer gedruckt, um einen eigenen Prozess Fenster, das sich öffnet
dann plötzlich schließt. Ich weiß nicht genau, wie man die powershell-Umleitung des stdout an die erzeugte java-Prozess auf die aktuelle powershell Konsole. Ich möchte mich Verhalten wie das, was ich bekomme, wenn die Ausführung von java unter einer DOS-shell.
Meine test-Klasse ist:
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
Mein PowerShell 2.0-code ist dieser:
set-item -path Env:CLASSPATH -value C:\Test
"CLASSPATH = $Env:CLASSPATH"
[Diagnostics.Process]::Start('java.exe','-classpath $Env:CLASSPATH C:\
Test\HelloWorldApp')
Alternativ, ich versuchte es etwa so aus, als würde ich mit einem regelmäßigen
DOS-shell, mit der Hoffnung, dass zeigt die Ausgabe in der Konsole :
java.exe -classpath $Env:CLASSPATH C:\Test\HelloWorldApp
Verursacht es einen Fehler. Ich bekomme diese Fehlermeldung:
PS >C:\Test\Test.ps1
CLASSPATH = C:\Test
java.exe : java.lang.NoClassDefFoundError: C:\Test\HelloWorldApp
At C:\Test\Site.ps1:3 char:5
+ java <<<< -classpath $Env:CLASSPATH C:\Test\HelloWorldApp
+ CategoryInfo : NotSpecified: (java.lang.NoCla...e\HelloWorldApp:
String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Exception in thread "main"
Soweit ich das beurteilen kann, meine Argumente sind richtig, weil hier ist, was die
PCEX ( http://pscx.codeplex.com ) echoargs cmdlet sagt mir:
PS >echoargs java.exe -classpath $Env:CLASSPATH C:\Test\HelloWorldApp
Arg 0 is <java.exe>
Arg 1 is <-classpath>
Arg 2 is <C:\Test>
Arg 3 is <C:\Test\HelloWorldApp>
Im überzeugt es gibt einen Weg, um diese zu arbeiten, weil dieser code funktioniert:
## Test.ps1
cd C:\PSJustice
java.exe -classpath . HelloWorldApp
Auch, das funktioniert:
cd C:\
java.exe -classpath C:\Test HelloWorldApp
InformationsquelleAutor djangofan | 2009-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich fand es schließlich heraus. Es war der kleinste Tippfehler :
Bei der Angabe wird der name der Klasse es nicht den absoluten Pfad voranstellen den Namen der Klasse. Oops.
InformationsquelleAutor djangofan