2009-08-04 19 views
5

Tôi đã cố gắng thêm tệp apache vfs jar làm phụ thuộc thời gian chạy. Mặc dù nó ném lỗi dưới đây:Làm cách nào để thêm jar ngoài vào ứng dụng nhật thực rcp?

java.lang.ClassNotFoundException: org.apache.commons.vfs.VFS tại org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal (BundleLoader.java:489) tại org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:405) tại org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:393) tại org.eclipse.osgi .internal.baseadaptor.DefaultClassLoader.loadClass (DefaultClassLoader.java:105) tại java.lang.ClassLoader.loadClass (ClassLoader.java:251) tại java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) tại file_explorer .View.setInput (View.java:295) tại file_explorer.View.initialize (View.java:130)

Làm thế nào tôi có thể giải quyết điều này, cảm ơn trước.

Trả lời

3

Cách tốt nhất để bao gồm Jar ngoài trong ứng dụng RCP Eclipse là đóng gói nó làm plugin và sau đó sử dụng phụ thuộc plugin cổ điển.

Chỉ cần tạo một plugin mới chứa chỉ Jar của bạn. Sau đó, trong tab xây dựng của trình soạn thảo tệp kê khai, thêm jar của bạn vào đường dẫn lớp (ở dưới cùng bên phải) và xuất tất cả các gói của nó trong cùng một tab thời gian chạy này. Ngoài ra, hãy chắc chắn kiểm tra xem bạn đã chọn jar trong tab Xây dựng chưa.

Tuy nhiên, bạn sẽ có thể sử dụng bình trong mã nguồn trình cắm cho sẵn nếu bạn chỉ thêm nó vào đường dẫn lớp như tôi đã đề cập trước đây.

Bởi vì một số khác của plugin của bạn có thể quan tâm đến việc sử dụng jar vfs và cho separtion các mối quan tâm quan trọng tôi nghĩ rằng bạn nên quấn nó trong plugin riêng của mình

2

Cách đơn giản nhất là tìm bó trong một bó OSGi hiện kho.

http://bundles.osgi.org/Main/Repository 
http://www.springsource.com/repository/app/ 
http://www.eclipse.org/orbit/ 
http://www.knopflerfish.org/repo/index.html 

SpringSource repo chứa apache VFS bó

Sau đó, bạn cần phải thêm bó với nền tảng mục tiêu (hoặc chỉ cần sao chép nó vào thư mục dropins)

Để cài đặt đúng cách bó vào một phiên bản mới hơn của nhật thực bạn nên sử dụng kho lưu trữ p2 hiện có và cài đặt gói từ kho lưu trữ p2 vào nền tảng thời gian chạy của bạn. Có hai cách: bạn có thể sử dụng cái hiện có (như quỹ đạo p2 repo) hoặc bạn có thể tạo nhà xuất bản p2 của riêng mình như được mô tả tại https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

2

Nếu bạn đang tìm thêm các lọ cần thiết vào đường dẫn lớp dự án của bạn. các tệp được yêu cầu vào thư mục lib trong cấu trúc dự án. Sau đó, từ dự án, hãy nhấp vào tab 'thời gian chạy' của plugin.xml và thêm các jars cần thiết từ thư mục lib vào đường dẫn lớp dự án.

1

Eclipse RCP là môi trường OSGi mở rộng mô hình phụ thuộc Java, vì vậy bạn không thể đơn giản lấy tệp jar và hy vọng nó hoạt động. Để sử dụng một lọ bên ngoài, trước tiên bạn phải xây dựng nó cho một plugin, mà p2-maven-plugin có thể giúp bạn, bạn có thể làm theo tài liệu readme.

Với plugin đã sẵn sàng, bạn nên cài đặt plugin và thêm plugin vào MANIFEST.MF. Sau đó khởi động lại Eclipse để làm cho plugin hoạt động.

Một cách dễ dàng hơn bằng cách nào, bạn không cần cài đặt plugin, chỉ cần làm theo (nhưng xây dựng jar):

  1. đi đến plugin.xml ->Runtime tab;
  2. nhấp vào Add tại mục classpath, sau đó thêm plugin vào classpath;
  3. chắc chắn có . đường dẫn trong vùng văn bản, nếu không New nó.
Các vấn đề liên quan