Foros del Web » Programación para mayores de 30 ;) » Java »

Duda de swt

Estas en el tema de Duda de swt en el foro de Java en Foros del Web. Hola a todos. He creado un nuevo componente que extiende de la libreria org.eclipse.swt.widgets y funciona perfectamente. Ahora estoy intentando crear una librería con ese ...
  #1 (permalink)  
Antiguo 10/10/2007, 03:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Duda de swt

Hola a todos.

He creado un nuevo componente que extiende de la libreria org.eclipse.swt.widgets y funciona perfectamente.

Ahora estoy intentando crear una librería con ese componente para utilizarlo en otro proyecto. Al compilar no me da error pero a la hora de ejecutar me dice que no encuentra la definición de la clase.

Alguien tiene alguna idea de como puedo solucionarlo?

Un saludo
  #2 (permalink)  
Antiguo 10/10/2007, 07:43
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: Duda de swt

Buena pregunta. Supongo que hay que incluir los JARs de eclipse en el classpath. Al mismo tiempo, recuerdo que SWT tiene acceso directo al sistema operativo, asi que ha de usar alguna libreria nativa (es decir, no javabyte).

Esta pagina confirma mi intuicion (en ingles): http://www.ibm.com/developerworks/library/os-ecgui1/

Resumiendo:

1. Agrega estos Jars (modificando la ruta, por supuesto):

C:\eclipse-2.1.0\plugins\org.eclipse.jface_2.1.0\jface.jar
C:\eclipse-2.1.0\plugins\org.eclipse.runtime_2.1.0\runtime.ja r
C:\eclipse-2.1.0\plugins\org.eclipse.swt.win32_2.1.0\ws\win32 \swt.jar
C:\eclipse-2.1.0\plugins\org.eclipse.ui.workbench_2.1.0\workb ench.jar
C:\eclipse-2.1.0\plugins\org.eclipse.core.runtime_2.1.0\runti me.jar

2. Pasa la siguiente opcion a la maquina virtual, modificandolo de acuerdo a tu sistema operativo y arquitectura (al igual que la ruta en donde se encuentra tu eclipse). En el ejemplo, usan Windows de 32 bits para maquinas x86 (bastante estandard):

-Djava.library.path=C:\eclipse-2.1.0\plugins\org.eclipse.swt.win32_2.1.0\os\win32 \x86\
  #3 (permalink)  
Antiguo 10/10/2007, 08:07
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Duda de swt

Cita:
Iniciado por Willie Ver Mensaje
Buena pregunta. Supongo que hay que incluir los JARs de eclipse en el classpath. Al mismo tiempo, recuerdo que SWT tiene acceso directo al sistema operativo, asi que ha de usar alguna libreria nativa (es decir, no javabyte).

Esta pagina confirma mi intuicion (en ingles): http://www.ibm.com/developerworks/library/os-ecgui1/

Resumiendo:

1. Agrega estos Jars (modificando la ruta, por supuesto):

C:\eclipse-2.1.0\plugins\org.eclipse.jface_2.1.0\jface.jar
C:\eclipse-2.1.0\plugins\org.eclipse.runtime_2.1.0\runtime.ja r
C:\eclipse-2.1.0\plugins\org.eclipse.swt.win32_2.1.0\ws\win32 \swt.jar
C:\eclipse-2.1.0\plugins\org.eclipse.ui.workbench_2.1.0\workb ench.jar
C:\eclipse-2.1.0\plugins\org.eclipse.core.runtime_2.1.0\runti me.jar

2. Pasa la siguiente opcion a la maquina virtual, modificandolo de acuerdo a tu sistema operativo y arquitectura (al igual que la ruta en donde se encuentra tu eclipse). En el ejemplo, usan Windows de 32 bits para maquinas x86 (bastante estandard):

-Djava.library.path=C:\eclipse-2.1.0\plugins\org.eclipse.swt.win32_2.1.0\os\win32 \x86\
Muchas gracias por contestar tan pronto, pero creo que el problema reside en que mi componente está en un paquete que se llama igual que el paquete del eclipse y, que de algún modo, existe un conflicto.

No puedo cambiar el nombre del paquete porque sino dejaria de funcionar el componente.

Se te ocurre algo para solucionarlo?

Un saludo
  #4 (permalink)  
Antiguo 10/10/2007, 08:41
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: Duda de swt

Podrias agregar tu clase al JAR?

Cual es exactamente el error que te sale? Puedes mostrarnos el stack trace (lo que te sale en la consola)?
  #5 (permalink)  
Antiguo 10/10/2007, 09:27
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Duda de swt

En que jar? Tengo un jar con el paquete. Los imports los coge bien y si pincho sobre la clase me aparecen todos los métodos.

El error que me da al ejecutar es el siguiente:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jface/viewers/SGATableViewer$TableColorAndFontNoOp
at org.eclipse.swt.widgets.AlarmPanel.<init>(Unknown Source)
at prueba.Prueba.<init>(Unknown Source)
at prueba.Prueba.main(Unknown Source)

SGATableViewer es mi componente.
  #6 (permalink)  
Antiguo 11/10/2007, 01:41
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: Duda de swt

A lo que me referia era poner la clase en el Jar donde esta la clase que has extendido (por ejemplo, en el jface.jar). Pero esta solucion no me parece la mas elegante.

Porque tienes tu clase en el paquete org.eclipse...? Para acceder a atributos que solo estan disponibles a las clases del mismo paquete? Si no es asi, seria mejor declararla en otro paquete, no en org.eclipse.... Aun si es este el caso, me pregunto si no puedes acceder a los atributos de otra forma, o disennar tu sub-clase de otra manera?

Como corres tu aplicacion? Dentro de Eclipse? O afuera? Es TableColorAndFontNoOp una clase?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:14.