{RESOLVIDO}como executar um video no java, usando comandos no CMD, pela classe Runtime

Olá a todos, amanhã é o dia e apresentar o meu TCC, e meu programa está 99%, apenas preciso exibir um vídeo dentro da aplicação pois não achei nada relacionado a como fazer isso usando DSJ e usando o JMF, o vídeo só roda quando executado diretamente pelo eclipse(não é problema com caminho).

Já que não consegui nada aqui no GUJ sobre como exibir um simples vídeo na minha aplicação, decidi fazer de um forma diferente, que é mais fácil, mais não está dando certo também.

quero executar o vídeo usando o CMD

estou usando esse comando

try { Runtime.getRuntime().exec("C:/Users/josej_000/workspace/J-Auto/J-AutoVideoAula.mpg"); } catch (IOException e) { e.printStackTrace(); }

Mais ele retorna essa execeção, porque?
quando eu coloco o comando diretamente no CMD ele funciona. Quando executo o comando acima ele me mando um exeção que é essa:

java.io.IOException: Cannot run program "C:/Users/josej_000/workspace/J-Auto/J-AutoVideoAula.mpg": CreateProcess error=193, %1 não é um aplicativo Win32 válido at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at formularios.JfrmComoUsar.<init>(JfrmComoUsar.java:65) at formularios.JfrmPrincipal$13.actionPerformed(JfrmPrincipal.java:297) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.io.IOException: CreateProcess error=193, %1 não é um aplicativo Win32 válido at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) ... 44 more Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at formularios.JfrmComoUsar$1.windowClosing(JfrmComoUsar.java:52) at java.awt.Window.processWindowEvent(Unknown Source) at javax.swing.JFrame.processWindowEvent(Unknown Source) at java.awt.Window.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

alguem sabe me dizer o porque, e como conseguir executar o video dessa forma ? muito grato.

Então, o comando que informasse é um caminho de um diretório. Você precisa informar um programa que reproduza vídeos e verificar como ele abre um vídeo através da linha de comando.

Segue um exemplo para o Windows Media player:

Runtime.getRuntime().exec("\"C:/Program Files/Windows Media Player/wmplayer /play C:/Users/josej_000/workspace/J-Auto/J-AutoVideoAula.mpg");

Basta ajustar o caminho do Windows Media Player e o vídeo rodará sem problemas. Caso você queira mais opções de configuração além do /play, dê uma olhada nessa página: http://support.microsoft.com/kb/241422

exec chama uma API do Windows que exige que o arquivo seja um .exe . Como o arquivo é .mpg, não pode ser executado diretamente.

Quando você dá um duplo-clique em um arquivo .mpg, está chamando uma API do Windows que procura a associação entre a extensão .mpg e o programa que vai abrir esse vídeo (depende da sua máquina, é verdade).

Portanto, você não pode chamar exec, e sim uma outra coisa. Procure por java.awt.Desktop, método open, que chama a API do Windows que procura essa associação.

Obrigado pela ajuda, é tudo que eu queria, ja que não consegui resolver o poblema com o JMF e não consegui achar nada que ajude a rodar um simples video com DSJ, fui de Gambiarra mesmo.

OBRIGADO!

String comando = "C:\\Users\\Claudio\\Music\\ACDC\\Black Ice - Acdc\\Track01.mp3";  
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " +comando);