我尝试使用命令
在OSX.7中运行jargwt-codeserver.jar
java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar" -jar /sdk/gwt-2.5.0.rc1/gwt-codeserver.jar com.activegrade.TeacherView
命令失败,显示:
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)
...
但是gwt-dev.jar包含com.google.gwt.core.ext.TreeLogger的定义,所以我得出结论,我没有在这里正确设置类路径。
我是否正确设置了类路径? jar文件肯定是正确的jar,它肯定在那个位置。我该如何进一步诊断?
答案 0 :(得分:7)
我已经将CodeServer作为Eclipse中的外部工具运行(需要注意的是 - 你仍然必须以某种方式为你的html文件服务,我还没有这样做,但这似乎让代码服务器运行)。要将CodeServer设置为Eclipse中的外部工具,
0)请记住,您还应该更新module.gwt.xml文件以允许Super Dev Mode书籍标记并启用源映射以进行调试。将这些喜欢添加到您的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)打开“外部工具/外部工具配置”对话框;这是在Windows的顶级“运行”菜单下。
2)通过选择左侧列表中的“程序”创建新配置,然后按“新建”按钮(它看起来像文档)。在对话框中命名您的配置。
3)java.exe文件的路径位于“位置:”框中。如果您不知道路径,可以使用“浏览文件系统”按钮找到它。
4)我把工作目录留空了。我不确定这是否重要;它没有它似乎工作。有没有人知道是否应该设置这个?
5)“Arguments:”框中的大部分工作。您将为类路径提供一个参数,该路径将包含gwt-dev.jar,gwt.user.jar,gwt-codeserver.jar和源目录的路径。然后,您将为gwt-codeserver.jar和要运行的CodeServer类提供-jar和参数,然后您将为CodeServer提供参数。我会分解它;
5a)-cp“用逗号分隔的类路径列表,用双引号括起来”。为了使您的工具定义更具可移植性,请使用eclipse“Varaibles”计算相对于您的安装的路径。特别是,我将'workspace_loc'用于工作空间相对路径(如src目录)和'eclipse_home'用于gwt SDK的路径比如gwt-user.jar(因为我在eclipse插件文件夹中安装了SDK)。这是我的classpath部分;
-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)接下来是java.exe应该运行的类的名称。这是CodeServer类;
com.google.gwt.dev.codeserver.CodeServer
5c)接下来是CodeServer的参数。第一个是直接到src的路径。对我来说,这是一个工作空间相对路径;
-src "${workspace_loc:\GWTFractionTest\src}"
5d)最后,模块路径(你的gwt.xml文件的类路径)这是我的;
com.conceptua.fractiontest.FractionTest
这是我的完整参数列表;
-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)选择“运行”按钮以运行CodeServer。当我在控制台中执行此操作时;
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 SelectChannelConnector@127.0.0.1:9876
我不知道为什么我得到最初的'72单位有编译错误',但它似乎继续成功编译并运行服务器。
7)此时,您应该将指定的CodeServer网址输入Chrome。您将获得一个指示CodeServer正在运行的页面,您可以将书籍标记拖动到书签工具栏;
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)下一步是访问你的html文件来运行它。它显然需要由一个单独的网络服务器提供服务。我还在努力工作。
版
答案 1 :(得分:2)
this可能是您问题的根源吗? “当您使用-jar选项时,JAR文件是所有用户类的源,并忽略其他用户类路径设置。”
答案 2 :(得分:2)
我浪费了很多时间试图让它发挥作用。我试图遵循美妙的Ezward指令,但我的设置可能有所不同,它对我不起作用。有许多移动的碎片,任何错误都会导致大量的NullPointer,StackOverflow和UnableToComplete异常。
我在http://blog.daniel-kurka.de/2012/07/mgwt-super-dev-mode.html(Daniel Kurka博客)找到的唯一一套适用于我的说明。希望它能帮助像我一样坚持使用GWT Super Dev Mode的其他人。
答案 3 :(得分:1)
您可以像以下一样使用它。
java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar:/sdk/gwt-2.5.0.rc1/gwt-codeserver.jar" com.activegrade.TeacherView
答案 4 :(得分:1)
有同样的问题。这对我有所帮助:
java -cp "./gwt-codeserver.jar:./gwt-dev.jar" com.google.gwt.dev.codeserver.CodeServer
您可以添加--help:
java -cp "./gwt-codeserver.jar:./gwt-dev.jar" com.google.gwt.dev.codeserver.CodeServer --help
输出:
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)
然后只需设置-src目录和模块名称
答案 5 :(得分:1)
除了gwt-dev.jar之外,我还可以通过在类路径中添加gwt-user.jar来解决这个问题。 GWT超级开发模式instructions表示您可能需要添加gwt-user.jar。