2012-06-29 12 views
6

Estoy intentando ejecutar un frasco, gwt-codeserver.jar, en OSX.7, con el comandoConfiguración de la ruta de clases de Java (para el modo súper dev)

java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar" -jar /sdk/gwt-2.5.0.rc1/gwt-codeserver.jar com.activegrade.TeacherView 

El comando falla con:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gwt/core/ext/TreeLogger 
Caused by: java.lang.ClassNotFoundException: com.google.gwt.core.ext.TreeLogger 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    ... 

Pero gwt-dev.jar contiene la definición de com.google.gwt.core.ext.TreeLogger, por lo que he llegado a la conclusión de que no estoy configurando correctamente el classpath aquí.

¿Estoy estableciendo el classpath correctamente? El archivo jar definitivamente es el contenedor correcto y definitivamente está en esa ubicación. ¿Cómo puedo diagnosticar esto más?

Respuesta

2

¿Podría ser el origen de su problema this? "Cuando usa la opción -jar, el archivo JAR es el origen de todas las clases de usuario, y se ignoran otras configuraciones de ruta de clase de usuario".

1

Se puede utilizar como seguir ..

java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar:/sdk/gwt-2.5.0.rc1/gwt-codeserver.jar" com.activegrade.TeacherView 
7

Tengo el CodeServer se ejecuta como una herramienta externa en Eclipse (advertencia - usted todavía tiene que servidor de su archivo HTML de alguna manera, que no lo he hecho todavía hecho, pero esto parece hacer funcionar el servidor de códigos). Para configurar el CodeServer como una herramienta externa en Eclipse,

0) Recuerde que también debe actualizar su archivo module.gwt.xml para permitir los marcadores de libros del Super Dev Mode y para habilitar los mapas de origen para la depuración. Agregue estos "me gusta" a su archivo module.gwt.xml.

<!-- enable the SuperDevMode book marklets --> 
<add-linker name="xsiframe"/> 
<set-configuration-property name="devModeRedirectEnabled" value="true"/> 

<!-- enable source maps --> 
<set-property name="compiler.useSourceMaps" value="true" /> 

1) Abra el cuadro de diálogo Herramientas externas/Configuraciones de herramientas externas; esto está debajo del menú "Ejecutar" del nivel superior en Windows.

2) Cree una nueva configuración seleccionando 'Programa' en la lista de la izquierda, luego presione el botón 'Nuevo' (parece un documento). Nombre su configuración en el diálogo.

3) La ruta a su archivo java.exe va en el cuadro 'Ubicación:'. Puede usar el botón 'Examinar sistema de archivos' para localizarlo si no conoce la ruta.

4) Dejé el directorio de trabajo en blanco. No estoy seguro si esto importa; parece funcionar sin eso. ¿Alguien por ahí sabe con certeza si esto debería establecerse?

5) La mayor parte del trabajo en el cuadro "Argumentos:". Proporcionará un argumento para la ruta de clase que incluirá la ruta a gwt-dev.jar, gwt.user.jar, gwt-codeserver.jar y a su directorio de origen. A continuación, proporcionará un argumento y -jar al gwt-codeserver.jar y la clase CodeServer para ejecutar, luego proporcionará los argumentos a CodeServer. Lo dividiré;

5a) -cp "lista separada por comas de rutas de clases, rodeada de comillas dobles". Para hacer que su definición de herramienta sea más portátil, use eclipse "Varaibles" para calcular las rutas relativas a su instalación. En particular, utilicé 'workspace_loc' para las rutas relativas del espacio de trabajo (como el directorio src) y 'eclipse_home' para las rutas a gwt SDK . cosas como GWT-user.jar (porque he instalado el SDK en la carpeta plugins de eclipse) Aquí está mi parte ruta de clases;

-cp "${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-user.jar;${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-dev.jar;${workspace_loc:\GWTFractionTest\war\WEB-INF\lib\gwtquery-1.1.0.jar};${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-codeserver.jar" 

5b) el siguiente es el nombre de la clase que java.exe debería funcionar.Esta es la clase CodeServer;

com.google.gwt.dev.codeserver.CodeServer 

5c) Siguiente son los argumentos para CodeServer. El primero es el camino hacia el src directamente. Para mí, esta es una ruta relativa al espacio de trabajo;

-src "${workspace_loc:\GWTFractionTest\src}" 

5d) Por último, la ruta del módulo (la ruta de clase a su archivo gwt.xml) Esta es la mía;

com.conceptua.fractiontest.FractionTest 

Aquí está mi lista completa de argumentos;

-cp "${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-user.jar;${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-dev.jar;${workspace_loc:\GWTFractionTest\war\WEB-INF\lib\gwtquery-1.1.0.jar};${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-codeserver.jar" com.google.gwt.dev.codeserver.CodeServer -src "${workspace_loc:\GWTFractionTest\src}" com.conceptua.fractiontest.FractionTest 

6) Seleccione el botón 'Ejecutar' para ejecutar el CodeServer. Cuando ejecuto esto en la consola;

workDir: C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp 
binding: user.agent=safari 
binding: compiler.useSourceMaps=true 
binding: locale=en 
Compiling module com.conceptua.fractiontest.FractionTest 
    Validating units: 
     Ignored 72 units with compilation errors in first pass. 
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors. 
    Computing all possible rebind results for 'com.google.gwt.useragent.client.UserAgentAsserter' 
     Rebinding com.google.gwt.useragent.client.UserAgentAsserter 
     Checking rule <generate-with class='com.google.gwt.editor.rebind.SimpleBeanEditorDriverGenerator'/> 
      [WARN] Detected warnings related to 'com.google.gwt.editor.client.SimpleBeanEditorDriver'. Are validation-api-<version>.jar and validation-api-<version>-sources.jar on the classpath? 
      Specify -logLevel DEBUG to see all errors. 
      [WARN] Unknown type 'com.google.gwt.editor.client.SimpleBeanEditorDriver' specified in deferred binding rule 
    Compiling 1 permutation 
     Compiling permutation 0... 
     Source Maps Enabled 
    Compile of permutations succeeded 
Linking into C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp\com.conceptua.fractiontest.FractionTest\compile-1\war\fractiontest; Writing extras to C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp\com.conceptua.fractiontest.FractionTest\compile-1\extras\fractiontest 
    Link succeeded 
    Compilation succeeded -- 58.257s 
Compile completed in 60831 ms 
2012-07-01 12:37:03.184::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 
2012-07-01 12:37:03.185::INFO: jetty-6.1.x 

The code server is ready. 
Next, visit: http://localhxst:9876/ 
2012-07-01 12:37:03.274::INFO: Started [email protected]:9876 

no estoy seguro de por qué me sale del '72 Unidades iniciales con error de compilación pero parece que siga recopilando con éxito y ejecutar el servidor.

7) En este punto, debe ingresar la URL de CodeServer dada en Chrome. Obtendrá una página que indica que el CodeServer se está ejecutando y puede arrastrar los marcadores del libro a la barra de herramientas de marcadores;

GWT Code Server 
Drag these two bookmarklets to your browser's bookmark bar: 
Dev Mode On Dev Mode Off 
Visit a web page that uses one of these modules: 
fractiontest 
Click "Dev Mode On" to start development mode. 

8) El siguiente paso es llegar a su archivo html para ejecutarlo. Al parecer, debe ser servido por un servidor web por separado. Todavía estoy trabajando en esa parte.

Ed

2

que desperdicia una gran cantidad de tiempo tratando de hacer que funcione. Traté de seguir las maravillosas instrucciones de Ezward pero mi configuración es probablemente algo diferente y no funcionó para mí. Hay muchas piezas en movimiento y cualquier error causa toneladas de excepciones NullPointer, StackOverflow y UnableToComplete.

El único conjunto de instrucciones que funcionó para mí lo encontré en http://blog.daniel-kurka.de/2012/07/mgwt-super-dev-mode.html (blog de Daniel Kurka). Espero que ayude a alguien más que está atrapado en GWT Super Dev Mode como yo.

1

Tenía el mismo problema. Esto es lo que me ayudó:

java -cp "./gwt-codeserver.jar:./gwt-dev.jar" com.google.gwt.dev.codeserver.CodeServer 

Puedes añadir el --help como tal: la salida

java -cp "./gwt-codeserver.jar:./gwt-dev.jar" com.google.gwt.dev.codeserver.CodeServer --help 

Would:

CodeServer [-bindAddress address] [-port port] [-workDir dir] [-src dir] [module] 

where 
    -bindAddress The ip address of the code server. Defaults to 127.0.0.1. 
    -port   The port where the code server will run. 
    -workDir  The root of the directory tree where the code server willwrite compiler output. If not supplied, a temporary directorywill be used. 
    -src   A directory containing GWT source to be prepended to the classpath for compiling. 
and 
    module  The GWT modules that the code server should compile. (Example: com.example.MyApp) 

y luego acaba de establecer su directorio y el -src nombre de su módulo

1

Pude resolver esto agregando gwt-user.jar a classpath además de gwt-dev.jar. El modo superdeportivo GWT instructions dice que puede necesitar agregar gwt-user.jar.

Cuestiones relacionadas