2012-06-29 41 views
6

Tôi đang cố gắng để chạy một jar, gwt-codeserver.jar, trong OSX.7, với lệnhThiết classpath java (đối với chế độ siêu 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 

Lệnh không thành công với:

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) 
    ... 

Nhưng gwt-dev.jar chứa định nghĩa cho com.google.gwt.core.ext.TreeLogger, vì vậy tôi đã kết luận rằng tôi không thiết lập đúng classpath ở đây.

Tôi có đặt đúng đường dẫn lớp không? Các tập tin jar chắc chắn là bình đúng và nó chắc chắn ở vị trí đó. Làm thế nào tôi có thể chẩn đoán điều này hơn nữa?

Trả lời

2

Có thể this là nguồn gốc của sự cố của bạn không? "Khi bạn sử dụng tùy chọn -jar, tệp JAR là nguồn của tất cả các lớp người dùng và các cài đặt đường dẫn lớp người dùng khác sẽ bị bỏ qua".

1

Bạn có thể sử dụng nó như sau ..

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

tôi đã có CodeServer chạy như một công cụ bên ngoài trong Eclipse (caveat - bạn vẫn phải máy chủ tập tin html của bạn bằng cách nào đó, mà tôi chưa thực hiện, nhưng điều này dường như để có được các máy chủ mã chạy). Để thiết lập CodeServer như một công cụ bên ngoài trong Eclipse,

0) Hãy nhớ rằng bạn cũng nên cập nhật tệp module.gwt.xml của mình để cho phép các nhãn hiệu sách Super Dev Mode và bật bản đồ nguồn để gỡ lỗi. Thêm những thích này vào tệp module.gwt.xml của bạn.

<!-- 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) Mở hộp thoại Công cụ bên ngoài/Cấu hình công cụ bên ngoài; đây là trình đơn 'Chạy' cấp cao nhất trong Windows.

2) Tạo cấu hình mới bằng cách chọn 'Chương trình' trong danh sách ở bên trái, sau đó nhấn nút 'Mới' (trông giống như tài liệu). Đặt tên cho cấu hình của bạn trong hộp thoại.

3) Đường dẫn đến tệp java.exe của bạn sẽ nằm trong hộp 'Vị trí:'. Bạn có thể sử dụng nút 'Duyệt Tệp Hệ thống' để định vị nó nếu bạn không biết đường dẫn.

4) Tôi để trống thư mục làm việc. Tôi không chắc liệu điều này có quan trọng hay không; có vẻ như nó không hoạt động. Có ai ngoài đó biết chắc chắn nếu điều này nên được thiết lập?

5) Phần lớn công việc trong hộp "Đối số:". Bạn sẽ cung cấp một đối số cho đường dẫn lớp sẽ bao gồm đường dẫn đến gwt-dev.jar, gwt.user.jar, gwt-codeserver.jar và vào thư mục nguồn của bạn. Sau đó, bạn sẽ cung cấp một -jar và đối số cho gwt-codeserver.jar và lớp CodeServer để chạy, sau đó bạn sẽ cung cấp các đối số cho CodeServer. Tôi sẽ phá vỡ nó;

5a) -cp "danh sách các đường dẫn lớp được phân cách bằng dấu phẩy, được bao quanh bởi dấu ngoặc kép". Để làm cho định nghĩa công cụ của bạn dễ dàng hơn, hãy sử dụng eclipse "Varaibles" để tính các đường dẫn có liên quan đến cài đặt của bạn.Đặc biệt, tôi đã sử dụng 'workspace_loc' cho đường dẫn tương đối của không gian làm việc (như thư mục src) và 'eclipse_home' cho đường dẫn đến gwt SDK . thứ như gwt-user.jar (vì tôi đã cài đặt SDK trong thư mục plugins eclipse) Dưới đây là một phần classpath của tôi;

-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) Tiếp theo là tên của lớp mà java.exe nên chạy.Đây là lớp CodeServer;

com.google.gwt.dev.codeserver.CodeServer 

5c) Tiếp theo là đối số cho CodeServer. Đầu tiên là đường dẫn đến src trực tiếp. Đối với tôi, đây là một đường dẫn tương đối không gian làm việc;

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

5d) Cuối cùng, đường dẫn mô-đun (đường dẫn lớp tới tệp gwt.xml) Đây là của tôi;

com.conceptua.fractiontest.FractionTest 

Đây là danh sách đối số đầy đủ của tôi;

-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) Chọn nút 'Chạy' để chạy Máy chủ mã. Khi tôi thực hiện điều này trong giao diện điều khiển;

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 

Tôi không chắc chắn lý do tại sao tôi nhận được '72 đơn vị có lỗi biên dịch 'ban đầu' nhưng có vẻ như tiếp tục biên dịch và chạy máy chủ thành công.

7) Tại thời điểm này, bạn nên nhập url CodeServer đã cho vào Chrome. Bạn sẽ nhận được một trang cho biết CodeServer đang chạy và bạn có thể kéo các dấu sổ sách vào thanh công cụ dấu trang;

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) Bước tiếp theo là truy cập tệp html của bạn để chạy tệp. Nó dường như cần phải được phục vụ bởi một máy chủ web riêng biệt. Tôi vẫn đang làm việc trên phần đó.

Ed

2

Tôi lãng phí rất nhiều thời gian để làm cho nó hoạt động. Tôi đã cố gắng làm theo hướng dẫn tuyệt vời Ezward nhưng thiết lập của tôi có lẽ hơi khác và nó không hiệu quả với tôi. Có nhiều mẩu di chuyển và bất kỳ sai lầm nào gây ra các ngoại lệ NullPointer, StackOverflow và Can'tToComplete.

Chỉ một số hướng dẫn phù hợp với tôi mà tôi tìm thấy tại http://blog.daniel-kurka.de/2012/07/mgwt-super-dev-mode.html (blog của Daniel Kurka). Hy vọng nó sẽ giúp người khác bị mắc kẹt với GWT Super Dev Mode như tôi.

1

Đã xảy ra sự cố tương tự. Đây là những gì giúp tôi:

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

Bạn có thể thêm --help như vậy:

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

Would đầu ra:

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) 

và sau đó chỉ cần thiết lập thư mục -src của bạn và tên của mô-đun của bạn

1

Tôi đã có thể giải quyết vấn đề này bằng cách thêm gwt-user.jar vào đường dẫn lớp ngoài gwt-dev.jar. Chế độ siêu dev GWT instructions cho biết bạn có thể cần phải thêm gwt-user.jar.

Các vấn đề liên quan