Ok, đây là giải pháp tôi muốn tìm, thay vì ở đây tôi viết nó:
Đầu tiên hãy tạo cấu trúc thư mục tương ứng với gói được định nghĩa cho tệp .java, nếu là my.super.application, hãy tạo thư mục "my" và bên trong nó là "super" và bên trong nó là tệp .java "App.java"
sau đó từ dòng lệnh:
javac -cp /path/to/lib1.jar:/path/to/lib2.jar path/to/my/super/App.java
Lưu ý ở trên sẽ bao gồm nhiều thư viện, nếu trong windows sử dụng "," để tách nhiều tệp, nếu không trong GNU / Linux sử dụng ":" Để tạo một tệp jar
jar -cvfe App.jar App my/app/
ở trên sẽ tạo ứng dụng với Tệp kê khai tương ứng cho biết Ứng dụng là lớp chính.
Không thể bao gồm các thư viện bắt buộc bên trong tệp jar bằng cách sử dụng các tham số dòng lệnh java hoặc jar.
Thay vào đó, bạn có thể:
- giải nén thủ công các thư viện vào thư mục gốc của tệp jar
- sử dụng IDE chẳng hạn như Netbeans và chèn quy tắc bên trong phần post-jar của nbproject / build-impl.xml để giải nén các thư viện bên trong jar. Xem bên dưới.
<target name="-post-jar">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
<jar jarfile="${dist.jar}" update="true">
<zipfileset src="${dist.jar}" includes="**/*.class" />
<zipfileset src="${file.reference.iText-1.0.8.jar}" includes="**/*"/>
<zipfileset src="${file.reference.itextpdf-3.2.1.jar}" includes="**/*"/>
</jar>
</target>
tên file.reference được tìm thấy bên trong tệp project.properties sau khi bạn thêm các thư viện vào Netbeans IDE.