Pregunta

RENUNCIA

este es el caso clásico de .NET GUI tratando de trabajar su camino alrededor de la materia JAVA.

PROBLEMA DESCRIPCIÓN:

Estoy tratando de construir una interfaz gráfica de usuario muy simple con JFace y SWT - el código es sencillo (hay tutoriales en abundancia), lo que no es tan sencillo es que me parece que no puede conseguir JFace y SWT para trabajar fuera de un proyecto de plugin .

Me esperaba ser capaz de utilizar JFace y SWT en mi proyecto sin problemas, desde que puse "C: / eclipse / plugins de 3,5" en mi CLASSPATH (de mi computadora -> propiedades -> Opciones avanzadas -> variables de entorno) y toda la SWT - *. dll que pude encontrar en mi camino (tanto de usuarios locales y caminos globales, para estar seguro) como este artículo indica en el "SWT Instalación y caja JFace".

El problema es que no puedo importar nada de eclipse.org a menos que haga referencia directamente a los frascos de BuildPath -> Bibliotecas -> añadir frascos externos (a fin de que para construir tengo que añadir los siguientes frascos: org.eclipse.swt.win32.win32.x86_3.5.1.v3555a.jar , org.eclipse.jface_3.5.1.M20090826-0800.jar ). Una vez que haga que se construye bien, pero luego, cuando lo ejecuto como "Java Application" me sale el siguiente error (debo Ejecutar como otra cosa?):

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
    at demo.ui.test.EntryPoint.main(EntryPoint.java:18)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IProgressMonitor
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 1 more

He intentado depurar este y, básicamente, se lanza en cuanto se intenta crear una instancia de la clase ApplicationWindow (org.eclipse.jface.window.ApplicationWindow). Tratando de reproducir el error, le comenté a cabo todo mi código y lo reemplazó con el siguiente en mi principal y arroja él mismo error que el anterior en la primera línea:

ApplicationWindow w = new ApplicationWindow(null); //<-- error on this line
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();

PREGUNTAS:

Pregunta 1 :? ¿Cómo puedo solucionar el error anterior (me gustaría entender lo que está pasando) y obtener la maldita cosa para ejecutar

Pregunta 2 : ¿por qué los frascos no son visibles para mi proyecto y cómo hacerlas

probablemente estoy perdiendo algo muy trivial debido a mi falta de familiaridad con Java y Eclipse. Cualquier ayuda muy apreciada!

Editar : Parece que otra persona tenía el mismo problema -> http://www.eclipsezone.com/eclipse/forums/t60528.html - no demasiado claro cómo lo resolvieron sin embargo, la asistencia apreciado

¿Fue útil?

Solución

interfaz IProgressMonitor no está disponible en los dos frascos que utiliza. También es necesario poner org.eclipse.equinox.common plugin en su ruta de clase. IProgressMonitor se puede utilizar sin que todo entorno Eclipse en ejecución.

(Esta es la solución del artículo se hace referencia a. Al principio pensé que se encuentra en IProgressMonitor complemento org.eclipse.core.runtime, pero se ha trasladado a org.eclipse.equinox.common como se describe en el bug # 122935 )

Otros consejos

Haciendo eco punto de Pedro arriba, siempre tengo que añadir un montón de tarros para conseguir las cosas funcionando (especialmente para JFace). Por lo general, necesitaré

./org.eclipse.core.commands_3.3.0.I20070605-0010.jar
./org.eclipse.core.runtime_3.3.100.v20070530.jar
./org.eclipse.equinox.common_3.3.0.v20070426.jar
./org.eclipse.jface_3.3.1.M20070910-0800b.jar
./org.eclipse.osgi_3.3.2.R33x_v20080105.jar
./org.eclipse.ui.forms_3.3.0.v20070511.jar

Puede usar algo como jarfinder para ayudar a detectar qué archivos viven en lo JAR. En las ventanas Creo recordar que el uso de la función de búsqueda para buscar, por ejemplo, IProgressMonitor.class en archivos zip / jar en la carpeta de Eclipse en el sistema de archivos -. Ya que a veces los JAR reales pueden ser difíciles de localizar

Por lo general trabajo al ver lo que falla, rastrear / añadir el JAR, enjuague y repita.

Hacer RCP / plugins parece como Eclipse se encarga de muchos de los problemas para usted, haciendo su propio stand alone aplicación viene con este equipaje extra, pero es muy agradable tener una interfaz gráfica de usuario adecuada autónomo nativo mirando si usted se pega con eso. Así que por lo general vainilla (no-Plugin) proyectos de eclipse de instalación y que le obliga a enfrentarse a estos temas (JAR añadir a la ruta de clase de forma manual). También es muy útil como y cuando quiere distribuir su proyecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top