Tôi đang tạo một cặp máy chủ khách hàng VoIP trong java bằng cách sử dụng IDE netbeans. Tôi muốn sử dụng chỉ có 1 dự án nhưng tôi không quen với cách netbeans sẽ tạo ra các tập tin Jar. Tôi cần một nếu điều này là có thể và nếu có, làm thế nào để thiết lập nó.Tạo các lọ với nhiều lớp chính trong netbeans
Trả lời
Tôi tin rằng mục đích của 'lớp chính' có nghĩa là tệp kê khai JAR cuối cùng, sẽ gắn nhãn một lớp là 'lớp để chạy': để người dùng cuối chỉ có thể nhấp đúp vào nó * hoặc chạy một dòng lệnh đơn giản như:
java -jar <jar>
thay vì phải xác định gói/tên cả lớp như:
java -cp <jar> com.yourcom.package.classname
Nếu tôi đúng, sau đó tôi không thấy làm thế nào nó sẽ có ý nghĩa để có nhiều hơn một lớp học chính? Có lẽ tôi hiểu sai câu hỏi của bạn - hoặc có mục đích khác cho lớp 'chính'? Nếu bạn có nghĩa là có hai lớp có phương thức 'chính' - thì điều này là tốt - người dùng cuối có thể khởi chạy bất kỳ lớp nào theo tên - và miễn là chúng có sig phương thức chính chuẩn, ví dụ:
nó chỉ hoạt động.
* (trên Windows ít nhất, và cho dù đó cũng làm việc phụ thuộc vào JRE họ có và những thứ có thể khác)
Tôi không biết làm thế nào Netbeans làm việc, nhưng nó phải là không có vấn đề đặt nhiều hơn một lớp chính trong một JAR. Trên thực tế, một lớp chính chỉ là một lớp có một phương thức chính và một JAR là một tập hợp các tệp lớp.
Hạn chế duy nhất là chỉ có thể có một lớp học sẽ được bắt đầu bằng cách nhấp đúp vào JAR.
Để bắt đầu mỗi lớp, bạn không được sử dụng tùy chọn -jar, nhưng cung cấp tên lớp đầy đủ.
Ví dụ, nếu bạn có một khách hàng và một lớp Server trong JAR của bạn, khách hàng đang bắt đầu bởi
java -cp file.jar Client
và Server bằng
java -cp file.jar Server
.
Tùy chọn là tạo một lớp thứ ba khởi động được sử dụng để khởi động máy chủ hoặc máy khách dựa trên đối số dòng lệnh (hoặc cửa sổ GUI).
JAR File Specification chỉ cho phép Main-Class
thuộc tính cho mỗi JAR, nhưng JAR có thể có số lượng tùy ý các lớp khai báo phương thức main()
. Bất kỳ lớp học nào như vậy sẽ được đưa vào thuộc tính Build
Packaging
của dự án, trừ khi được loại trừ một cách cụ thể.
Là một ví dụ cụ thể, H2 Database bao gồm các lớp với main()
:
org.h2.jdbcx.JdbcConnectionPool org.h2.tools.Backup org.h2.tools.ChangeFileEncryption org.h2.tools.Console org.h2.tools.ConvertTraceFile org.h2.tools.ConvertTraceFile org.h2.tools.CreateCluster org.h2.tools.DeleteDbFiles org.h2.tools.Recover org.h2.tools.Restore org.h2.tools.RunScript org.h2.tools.Script org.h2.tools.Server org.h2.tools.Shell
Phụ Lục: Rõ ràng, dự án rác-ngăn kéo của tôi cần bảo trì.
$ find scratch/src -name \*java | xargs -J % egrep 'main[ \t]*\(Str' % | wc -l 109
+1 câu trả lời chính xác nhất – stacker
- 1. leiningen với nhiều lớp chính
- 2. Sử dụng nhiều lọ trong đường dẫn lớp jsvc
- 3. Các lọ riêng biệt cho các lớp chính khác nhau dưới cùng một src
- 4. Bao gồm nhiều lọ với classpathentry
- 5. Tạo các lớp học trong cùng một gói vào các lọ riêng biệt
- 6. khi nào các lớp trong lọ nhập PermGen
- 7. Cách tạo Sơ đồ lớp từ các lớp hiện có trong Netbeans IDE
- 8. Tạo sơ đồ lớp UML trong NetBeans 7.1.1
- 9. Netbeans và tạo các kiểm tra JUnit
- 10. Các mẫu để tạo ra lớp dẫn xuất chứa nhiều trường cả trong chính nó và lớp cơ sở
- 11. Tạo nguồn và lọ tài liệu
- 12. Netbeans - tạo lớp thực thể từ cơ sở dữ liệu
- 13. Cách sử dụng ký tự đại diện trong đường dẫn lớp để thêm nhiều lọ?
- 14. Làm cách nào để tạo các mẫu Netbeans tạo nhiều hơn 1 tệp?
- 15. Tự động hoàn thành cho các đối tượng PHP với các lớp trong PDT/Netbeans?
- 16. Không thể đẩy nhánh chính vào kho git với netbeans
- 17. Quét chú thích không quét các lọ bên ngoài trong đường dẫn lớp
- 18. Nhiều lọ, giải pháp đơn vị bền vững duy nhất?
- 19. Tạo một kho lưu trữ tất cả các lọ và các lọ nguồn cho một dự án đa mô-đun
- 20. các mẫu freemarker trong một số lọ
- 21. Làm cách nào để tạo một sơ đồ lớp với mô-đun 6,8 UML của NetBeans?
- 22. Nhiều tệp Log4j.properties trong đường dẫn lớp
- 23. Cách tạo các tệp thuộc tính trong netbeans
- 24. Lọ nào chính xác là cần thiết để nhúng Neo4j?
- 25. IntelliJ: Các lớp từ lọ nhập khẩu không hiển thị bên trong gói
- 26. Nhiều con trỏ cho Netbeans?
- 27. Có công cụ nào để khám phá xem cùng một lớp có tồn tại trong nhiều lọ trong classpath không?
- 28. Cách tắt trình kiểm tra chính tả javadoc trong NetBeans
- 29. Tìm kiếm biểu thức chính quy nhiều dòng Netbeans Tìm kiếm
- 30. Nơi để đặt các lọ bên ngoài?
Lý do cho 2 lớp chính là do máy chủ và ứng dụng khách.Tôi muốn có một tệp jar được tạo cho mỗi lớp chính trong khi chứa trong một dự án. Có lẽ điều này đã làm rõ câu hỏi của tôi. – Zach
Vì vậy, bạn muốn có một dự án và hai lọ tôi nghĩ: vì vậy tôi nghĩ trong trường hợp đó, bạn có thể cần phải thực hiện một dự án dạng tự do: để bạn có thể tùy chỉnh các kịch bản lệnh (ant) để làm điều này. Tôi thường làm việc trên hai dự án trong kịch bản đó: trừ khi bạn thực sự cần chia sẻ nhiều mã giữa hai dự án: sau đó xem xét tạo dự án 'thư viện' thứ ba - sau đó bạn có thể thêm dự án đó làm thư viện phụ thuộc hai. [Tôi hy vọng điều đó có ý nghĩa!] – monojohnny
Ok, tôi nghĩ tôi đã hiểu ngay bây giờ. – Zach