Hallo zusammen,
erstmal nen frohes neues Jahr
Ich habe leider im neuen Jahr schon ein Problem.
Da ich noch ein relativer Frischling im JavaBereich bin, habe ich wahrscheins ein einfaches Problem.
Ich habe folgenden Prozess ( dieser funktioniert einwandfrei) :
Jedoch bei dem pb.ExitValue() bekomme ich eine Fehlermeldung, hier der Code:
Die Fehlermeldung sieht wie folgt aus:
Hat jemand eine Idee, warum dieser Quellcode die Fehlermeldung produziert?
Danke schonmal

Gruß
Xerion21
EDIT:
Wenn ich den Quellcode so umschreibe scheint es zu gehn:
erstmal nen frohes neues Jahr
Ich habe leider im neuen Jahr schon ein Problem.
Da ich noch ein relativer Frischling im JavaBereich bin, habe ich wahrscheins ein einfaches Problem.
Ich habe folgenden Prozess ( dieser funktioniert einwandfrei) :
Java:
ProcessBuilder pb = new ProcessBuilder();
pb.command().add( "cmd" );
pb.command().add( "/c" );
pb.command().add( "***");
Jedoch bei dem pb.ExitValue() bekomme ich eine Fehlermeldung, hier der Code:
Java:
Process p = null;
try {
p = pb.start();
} catch ( IOException e ) {
e.printStackTrace();
}
Scanner s = new Scanner( p.getInputStream() );
// System.out.println( s.next() );
s.close();
errorlevelcopy = p.exitValue();
Die Fehlermeldung sieht wie folgt aus:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException: process has not exited
at java.lang.ProcessImpl.exitValue(ProcessImpl.java:442)
at scripts.SystemScripts.install7Zip(SystemScripts.java:58)
at gui.ButtonActionListener.checkSelected(ButtonActionListener.java:128)
at gui.ButtonActionListener.actionPerformed(ButtonActionListener.java:176)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Hat jemand eine Idee, warum dieser Quellcode die Fehlermeldung produziert?
Danke schonmal
Gruß
Xerion21
EDIT:
Wenn ich den Quellcode so umschreibe scheint es zu gehn:
Java:
try {
p = pb.start();
errorlevelcopy = p.waitFor();
} catch ( IOException | InterruptedException e ) {
e.printStackTrace();
}
Zuletzt bearbeitet: