Olá pessoal, estou desenvolvendo um sistema de envio de arquivos de em uma rede interna. Estou desenvolvendo no eclipse e uso como Layout o MigLayout uma biblioteca externa. Mas quero executar o programa via prompt de comando, e quando eu faço:
java servido.Servidor
Mas aparece o seguinte erro:
Exception in thread "main" java.lang.NoClassDefFoundError: net/miginfocom/swin
MigLayout
at cliente.Cliente.criaJanela(Cliente.java:70)
at cliente.Cliente.<init>(Cliente.java:55)
at cliente.Cliente.main(Cliente.java:50)
Caused by: java.lang.ClassNotFoundException: net.miginfocom.swing.MigLayout
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 3 more
Sei que o erro é devido ao MigLayout, mas como eu faço pra resolver isso ?
Atenciosamente,
Fernando.
Boa noite Santos.Fernando.
O certo é:
java -jar servidor.jar
A linha de comando que voce digitou só executa apenas uma classe compilada e não projetos.
Valendo que a linha de comando acima que ser dada dentro da mesma pasta onde se encontra o seu projeto jar, ou assim:
java -jar c:\Meu projeto\servidor.jar
Como o discorpio disse, o comando é aquele primeiro mesmo, para executar o jar-file. Mas se a sua aplicação estiver em modo de texto, você executa da seguinte forma (desde que tenha o arquivo .class
por exemplo, eu tenho o arquivo programa.class
java programa
Apenas isso 
Assegure-se que o JAR do MigLayout está no classpath.
java -cp miglayout.jar:. -jar seuJar.jar
O .jar do MigLayout está no classpath da minha aplicação, mas ele está em um diretório e o .jar da minha aplicação está em outro diretório.
Eu procurei deixar o .jar do Miglayout em um diretório central, porque daí sempre que eu precisar utilizar eu sei onde ele está.
Isto é correto, ou copio o .jar do MigLayout pra dentro do diretório da minha aplicação ?
[quote=santos.fernando]O .jar do MigLayout está no classpath da minha aplicação, mas ele está em um diretório e o .jar da minha aplicação está em outro diretório.
Eu procurei deixar o .jar do Miglayout em um diretório central, porque daí sempre que eu precisar utilizar eu sei onde ele está.
Isto é correto, ou copio o .jar do MigLayout pra dentro do diretório da minha aplicação ?[/quote]
É indiferente. A única coisa a se observar é que, caso o classpath precise ser configurado manualmente, você deverá colocar o caminho completo do JAR caso ele não esteja na mesma pasta do projeto.
Mas se você tem certeza que o MigLayout está no classpath o erro de NoClassDefFoundError não deveria acontecer.
Marco, a configuração do MigLayout que foi feito, foi pelo Build Path do eclipse, isso tem alguma diferença ou é preciso configurar o classpath de outro modo ?
Atenciosamente
A configuracao feita no eclipse serve somente para executar dentro do eclipse!
Para rodar na unha (prompt) voce tem sim que indicar o caminho para o arquivo .jar
exemplo:
java -cp /caminho/para/o/miglaytou.jar SuaClasse