2009-03-08 37 views
5

Tôi tự hỏi nếu bạn có thể đặt lớp chính (hoặc lớp học với phương pháp init, bất cứ điều gì) bên trong một gói và vẫn còn có nó chạy trong một trình duyệt? Hầu hết thời gian tôi đặt applet của tôi vào (gói mặc định) nhưng applet của tôi ở đây là trong một gói, vì vậy tôi vẫn có thể nhúng nó vào trang web?Java applet với init() trong một gói?

Tôi đã googled nó với ít kết quả. Giả sử tôi có MyApplet.class trong một thư mục có tên app trong tệp jar có tên là MyApp.jar.

Tôi đã thử những không thành công:

<applet archive="MyApp.jar" code="MyApplet.class"> 
<applet archive="MyApp.jar" code="app/MyApplet.class"> 
<applet archive="MyApp.jar" code="/app/MyApplet.class"> 
<applet archive="MyApp.jar/app/" code="MyApplet.class"> 
<applet archive="MyApp.jar" codebase="app/" code="MyApplet.class"> 

Mỗi mang lại cho tôi một ClassNotFoundException.

Xin cảm ơn trước.

Trả lời

3

Thuộc tính lưu trữ nên chứa tên tập tin của jar, và nó nên được đặt trong cùng thư mục với trang web .

Tệp lớp trong thuộc tính mã phải chứa tên lớp đủ điều kiện được phân tách bằng dấu gạch chéo phía trước để biểu thị cấu trúc thư mục.

Do đó, trong danh sách thử nghiệm của bạn, thử nghiệm 2 sẽ thành công, với điều kiện là MyApp.jar thực sự xuất hiện dọc theo trang html. Ngoài ra, MyApp.jar nên chứa thư mục 'app' trong thư mục gốc, chứa thư mục lớp MyApplet. Đừng quên để có MyApplet lớp chính nó trong gói ứng dụng.

Bạn có thể xem this page để tham khảo.

1

Tôi không chắc chắn, nhưng có bạn đã cố gắng như thế này ?:

<applet archive="MyApp.jar" code="MyApplet"> 
3

Bạn cũng liệt kê gói theo dạng chấm và bạn không đặt '.class' ở cuối.

<applet code="packagefolder1.packagefolder2.MyApplet" archive="folder1/folder2/MyApp.jar"> 

</applet> 
Các vấn đề liên quan