6

gwt-codeserver.jarOSX.7でコマンドを使用して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であり、間違いなくその場所にあります。これをさらに診断するにはどうすればよいですか?

4

6 に答える 6

7

EclipseでCodeServerを外部ツールとして実行しています(注意-まだ何とかしてhtmlファイルをサーバー化する必要がありますが、これはまだ実行していませんが、これによりコードサーバーが実行されるようです)。CodeServerをEclipseの外部ツールとしてセットアップするには、

0)module.gwt.xmlファイルも更新して、スーパー開発モードのブックマークレットを許可し、デバッグ用のソースマップを有効にする必要があることを忘れないでください。これらのいいねを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)「引数:」ボックスの作業の大部分。gwt-dev.jar、gwt.user.jar、gwt-codeserver.jar、およびソースディレクトリへのパスを含むクラスパスの引数を指定します。次に、実行するgwt-codeserver.jarとCodeServerクラスに-jarと引数を指定し、次にCodeServerに引数を指定します。分解します。

5a)-cp「二重引用符で囲まれたクラスパスのコンマ区切りリスト」。ツール定義の移植性を高めるには、Eclipse「Varaibles」を使用してインストールに相対的なパスを計算します。特に、ワークスペースの相対パス(srcディレクトリなど)には「workspace_loc」を使用し、gwtSDKへのパスには「eclipse_home」を使用しました。 gwt-user.jarのようなもの(SDKをeclipseプラグインフォルダーにインストールしたため)。これが私のクラスパス部分です。

-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への引数です。1つ目は、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)この時点で、指定されたCodeServerURLを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ファイルにアクセスして実行することです。どうやら別のウェブサーバーでサービスを提供する必要があります。私はまだその部分に取り組んでいます。

エド

于 2012-07-01T20:29:39.033 に答える
2

これがあなたの問題の原因でしょうか?「-jarオプションを使用すると、JARファイルがすべてのユーザークラスのソースになり、他のユーザークラスパス設定は無視されます。」

于 2012-06-29T17:00:31.910 に答える
2

私はそれを機能させるために多くの時間を無駄にしました。私は素晴らしいEzwardの指示に従おうとしましたが、私の設定はおそらく多少異なり、うまくいきませんでした。多くの動く部分があり、間違いがあると、大量のNullPointer、StackOverflow、UnableToCompleteの例外が発生します。

http://blog.daniel-kurka.de/2012/07/mgwt-super-dev-mode.html(Daniel Kurkaブログ)で見つけた、私にとって有効な唯一の手順セット。それが私のようなGWTスーパー開発モードで立ち往生している他の誰かを助けることを願っています。

于 2012-07-11T19:32:11.273 に答える
1

次のように使用できます。

java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar:/sdk/gwt-2.5.0.rc1/gwt-codeserver.jar" com.activegrade.TeacherView
于 2012-06-29T17:25:06.917 に答える
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ディレクトリとモジュールの名前を設定するだけです

于 2012-07-20T18:35:46.370 に答える
1

gwt-dev.jarに加えてgwt-user.jarをクラスパスに追加することで、これを解決することができました。GWTスーパー開発モードの説明では、gwt-user.jarを追加する必要があるかもしれないと書かれています。

于 2015-08-08T17:43:15.987 に答える