Executar comando com a classe Runtime

Pessoal,

Alguém sabe dizer por que isso não rola;


String sCom = “%windir%\system32\java.exe -classpath J:\ Testeenquantoexecute”;

try {
Runtime.getRuntime().exec(sCom);
} catch (IOException e)
{
System.out.println(e.getMessage());
}

Olha o pau que dá;

Cannot run program “%windir%\system32\java.exe”: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado

java.io.IOException: Cannot run program “%windir%\system32\java.exe”: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at br.com.usjt.portj.util.UtilPortJ.executarClasse(UtilPortJ.java:116)
at br.com.usjt.portj.frames.FrameInternoPortJ.executar(FrameInternoPortJ.java:317)
at br.com.usjt.portj.frames.FrameInternoPortJ.access$3(FrameInternoPortJ.java:312)
at br.com.usjt.portj.frames.FrameInternoPortJ$5.actionPerformed(FrameInternoPortJ.java:179)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:377)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:232)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5999)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3240)
at java.awt.Component.processEvent(Component.java:5764)
at java.awt.Container.processEvent(Container.java:1984)
at java.awt.Component.dispatchEventImpl(Component.java:4407)
at java.awt.Container.dispatchEventImpl(Container.java:2042)
at java.awt.Component.dispatchEvent(Component.java:4237)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4248)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3912)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3842)
at java.awt.Container.dispatchEventImpl(Container.java:2028)
at java.awt.Window.dispatchEventImpl(Window.java:2405)
at java.awt.Component.dispatchEvent(Component.java:4237)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.io.IOException: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
… 32 more

Alguém ajuda!?

Porque a JVM não sabe o que é %windir% :wink:

String sCom = System.getenv&#40;&quot;windir&quot;&#41;+&quot;\\system32\\java.exe -classpath J&#58;\\ Testeenquantoexecute&quot;;