Tôi tạo ra hai dự án nhỏ de.app1 và de.app2, nơi App
từ de.app1 sử dụng Test
từ de .app2.Có thể sử dụng phụ thuộc mà không cần đun-info.class trong một module Java 9
├── de.app1
│ ├── de
│ │ └── app
│ │ └── App.java
│ └── module-info.java
└── de.app2
└── de
└── test
└── Test.java
module-info.java trong dự án đầu tiên chỉ chứa module de.app1 {}
tôi biên soạn dự án thứ hai và tạo ra một file jar:
javac de/test/Test.java
jar cf app2.jar de/test/Test.class
và sau đó cố gắng để biên dịch đầu tiên dự án như thế này:
javac -cp ../de.app2/app2.jar de/app/App.java module-info.java
không thành công vì không thể tìm thấy Test
. Khi tôi biên dịch dự án mà không cần module-info.java, mọi thứ đều hoạt động như bình thường.
Có phải bằng cách nào đó có thể sử dụng các lớp học từ một bình không phải là mô-đun Java 9 trong một mô-đun Java 9 là? Đặc biệt đối với các dự án phụ thuộc vào các dự án của bên thứ ba (ví dụ: apache-commons, ...), tôi nghĩ rằng điều này sẽ được yêu cầu.
Rất tốt, cảm ơn! Vì vậy, để cho tôi để có được điều này thẳng: Khi tôi đang làm việc với các mô-đun, tôi về cơ bản nên luôn luôn sử dụng đường dẫn mô-đun thay vì classpath? –
Nó không phải là đơn giản. JVM sẽ chỉ tải các mô-đun từ đường dẫn mô-đun được yêu cầu bởi một mô-đun khác. Phụ thuộc của các mô-đun tự động không được yêu cầu bởi bất kỳ ai (vì chúng không có 'module-info'), vì vậy chúng sẽ không được nạp. Chúng phải đi trên đường dẫn lớp, nơi chúng được gộp vào [module chưa được đặt tên] (http://openjdk.java.net/projects/jigsaw/spec/sotms/#the-unnamed-module). – Nicolai
Nếu một mô-đun tự động phụ thuộc vào một mô-đun tự động khác (ví dụ, cả hai đều nằm trên đường dẫn mô-đun nhưng chỉ yêu cầu mô-đun rõ ràng) thì bạn có thể tải mô-đun tự động thứ hai qua ['- add-modules'] (http://openjdk.java.net/jeps/261#Root-modules) tùy chọn. Tùy chọn này chấp nhận các mã thông báo đặc biệt biểu thị các bộ sưu tập mô-đun hữu ích . ['ALL-MODULE-PATH'] (http://openjdk.java.net/jeps/261#ALL-MODULE-PATH), trong cụ thể, sẽ tải tất cả các mô-đun quan sát được tìm thấy trên đường dẫn mô-đun. –