He querido ejecutar un archivo *.jar en windows y linux y me salta el mismo error, el archivo .jar contiene lo siguiente:
- Carpeta_Paquete
|
|_ archivo.class
-META-INF
|
|_ MANIFEST.MF
.classpath
.project
Los archivos en linux:
.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path=""/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="/usr/lib/eclipse-3.2/plugins/org.eclipse.swt_3.2.1.v3235e.jar"/>
<classpathentry kind="lib" path="/usr/lib/eclipse-3.2/plugins/org.eclipse.swt.gtk.linux.x86_3.2.1.v3235.jar"/>
<classpathentry kind="output" path=""/>
</classpath>
.project
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ProyectoEscuela</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
MANIFEST.MF
Manifest-Version: 1.0
Main-Class: funciones.Multiplicar
Y al ejecutar en linux:
soullost@UnderHouse ~/workspace/ProyectoEscuela/funciones $ java -jar multiplicar.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
Los archivos en windows:
.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path=""/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="C:/eclipse/plugins/org.eclipse.swt_3.1.0.jar"/>
<classpathentry kind="lib" path="C:/eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.1.0.jar"/>
<classpathentry kind="output" path=""/>
</classpath>
.project
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ProyectoEscuela</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
MANIFEST.MF
Manifest-Version: 1.0
Sealed: true
Main-Class: Calculadora.Multiplicar
Y al ejecutar en windows:
(http://img177.imageshack.us/img177/2879/errorwl1.jpg)
El archivo .jar lo he generado con Eclipse :rolleyes:
¿La clase Multiplicar tiene un método main? Porque ahora mismo es lo único que se me ocurre.
Se, public static void main(String[] args) ......
:-\
Por si sigues con la duda ya que sólo han pasado un par de semanas a mi me acaba de salir ese error y es porque hay alguna clase que usas y no está en el classpath y no la encuentra. Si averiguo más lo pondré.
Ya lo tengo solucionado desde hace un tiempo XD, no me habia pasado por aqui:
MANIFEST.MF
Manifest-Version: 1.0
Class-Path: org.eclipse.swt_3.1.0.jar org.eclipse.swt.win32.win32.x86_3.1.0.jar
Main-Class: funciones.Multiplicar
Los archivos org.eclipse.swt_3.1.0.jar y org.eclipse.swt.win32.win32.x86_3.1.0.jar puesto en la raiz del archivo .jar y la dll necesaria en windows también (swt-win32-3138.dll). Listo doble click con cualquiera pc que tenga la mv de java tongue.gif