2010-08-31 27 views
46

Tôi đã tạo một chương trình bằng Java và tôi thiết kế nó để các phương thức mà tôi muốn chúng xuất hiện (phương thức getter) trong chính, tôi có thể gọi chúng dễ dàng sau khi bắt đầu lớp chứa các phương thức này. Câu hỏi là, tôi cần làm cho ứng dụng này (giữ các phương thức getter) giống như một API để tôi có thể cho ứng dụng của tôi cho các nhà phát triển sử dụng các hàm của tôi (các phương thức getter) nếu họ cần chúng, và chỉ những gì họ cần là thêm tệp này (tôi nghĩ rằng API sau khi được thực hiện được hiển thị dưới dạng tệp .jar).Làm thế nào để tạo thư viện java của riêng tôi (API)?

Làm cách nào để tôi có thể làm cho mã của mình có thể sử dụng lại với ứng dụng khác? Nó tương tự như dll, tôi nghĩ vậy.

Cảm ơn rất nhiều;)

+1

Bạn có muốn ẩn triển khai không? – stacker

Trả lời

42

Tạo một JAR. Sau đó bao gồm JAR. Bất kỳ lớp nào trong JAR đó sẽ có sẵn. Chỉ cần chắc chắn rằng bạn bảo vệ mã của bạn nếu bạn đang đưa ra một API. Không hiển thị bất kỳ phương thức/thuộc tính nào cho người dùng cuối không nên sử dụng.

Chỉnh sửa: Để trả lời nhận xét của bạn, hãy đảm bảo bạn không bao gồm nguồn khi bạn đóng gói JAR. Chỉ bao gồm các tệp lớp. Đó là điều tốt nhất bạn thực sự có thể làm.

+1

Làm thế nào để bảo vệ mã của tôi khỏi bị ăn cắp ?? Điều mà tôi biết là, bạn có thể lấy mã nguồn của tệp jar một cách dễ dàng ... Vậy, có cách nào làm cho nó khó bị đánh cắp hay không? – Q8Y

+3

Bạn không thể thực sự. Không bao gồm mã nguồn, chỉ là mã được biên dịch (như những người khác đã nói), nhưng điều đó không ngừng xác định những người sử dụng các trình dịch ngược, vv – Ben

+1

Bạn có thể sử dụng mã obfuscator để bảo vệ mã của bạn khỏi bị đánh cắp. http://en.wikipedia.org/wiki/Obfuscation_(software) –

10

Bạn cần đóng gói ứng dụng của mình dưới dạng tệp jar. Bạn có thể sử dụng tác vụ ant jar để tạo các tệp jar hoặc bạn có thể sử dụng lệnh jar.

Đối với tác vụ kiến, hãy xem link này.

Để tạo tài liệu theo cách thủ công, hãy xem số link này.

+0

Hai phương pháp này có vẻ được kết nối với tôi ... Tôi có thể viết mã để tạo tệp jar ở đâu? là nó từ dòng lệnh ?? vì họ không chỉ rõ điều đó !! Có vấn đề gì nếu tôi sử dụng Eclipse để tạo tệp jar? nó có cho kết quả tương tự không ?? Có vấn đề với bảo mật theo cách này (Eclipse) ... Cảm ơn rất nhiều – Q8Y

+0

Tác vụ kiến ​​là một phần của tệp build.xml. Tuy nhiên bạn cũng có thể lập trình gọi nhiệm vụ kiến. Liên kết thứ hai (thủ công) được thực hiện bằng dòng lệnh. Bạn cũng có thể tạo tệp jar từ nhật thực nhưng tôi khuyên bạn nên sử dụng tệp build.xml vì nó sẽ giúp làm cho ứng dụng của bạn thân thiện hơn với doanh nghiệp để triển khai. – CoolBeans

+0

Ngoài các phương pháp được nêu ở đây, tất nhiên bạn có thể xuất các lớp của bạn thành một JAR từ Eclipse/IDE của sự lựa chọn, vâng. – Ben

6

Đảm bảo bạn viết và xuất bản javadocs cho tất cả các lớp và phương pháp công cộng và được bảo vệ của bạn.

+0

Yah ... Tôi đã làm điều đó cho các phương pháp của tôi ... cho tôi và cho một trong những sẽ sử dụng API .. Javadocs là tốt đẹp, nhưng là có một cách tốt hơn để tổ chức các tập tin được tạo ra trong định dạng html.Kể từ khi, nhiều tập tin được tạo ra cùng với (Index) ... Tôi hy vọng có một cách để tổ chức đó và để làm cho nó chuyên nghiệp;) – Q8Y

+0

@ Q8Y - Javadoc là chuyên nghiệp. Sun/Oracle sử dụng nó cho tài liệu thư viện Java, cũng như hầu hết các nhà cung cấp thư viện của bên thứ ba. Tôi có thể khá nhiều tên bất cứ ai ở đây, nhưng một vài ví dụ sẽ là Spring Framework (http://static.springsource.org/spring/docs/3.0.x/javadoc-api/) hoặc Apache Commons (IO - http://commons.apache.org/io/api-release/index.html) –

+0

Được xác định là "tốt hơn". Ngoài ra javadoc là tiêu chuẩn defacto để ghi lại các API của java. –

15

Để có thể sử dụng được như một API, các lớp học của bạn nên:

  • Sử dụng một gói phần mềm duy nhất (lý tưởng theo quy ước, ví dụ ngược lại của một tên miền mà bạn sở hữu là tiền tố). Điều này ngăn các xung đột đặt tên
  • Chỉ có các lớp và phương pháp public hoặc protected được dự định sử dụng bởi những người khác. Điều này giúp dễ sử dụng hơn.
  • Có nhiều nhận xét Javadoc mở rộng.
  • Có sẵn dưới dạng tệp JAR - các JAR riêng biệt lý tưởng cho các tệp phân phối nhị phân, mã nguồn và tệp javadoc.
4

Có một số cách bạn có thể hiển thị mã của mình. Tạo một cái lọ và phân phối có thể dễ dàng nhất vì các nhà phát triển khác sẽ phải bao gồm cả cái lọ của bạn. Tuy nhiên, nếu bạn đang nói về "bất kỳ ai" truy cập mã của mình, dịch vụ web có thể có ý nghĩa hơn vì bạn có thể cung cấp quyền truy cập vào dữ liệu mà không cung cấp tất cả mã cần thiết. Bạn đề cập đến việc cung cấp quyền truy cập vào getters của bạn - nếu bạn chỉ tạo một lớp có getters, các nhà phát triển khác có thể sử dụng chúng, nhưng làm cách nào để chúng được phổ biến? Nếu ứng dụng của bạn tự chứa dữ liệu cần thiết và cung cấp các getters, nó sẽ hoạt động, nhưng nếu bạn đang nói về việc cung cấp quyền truy cập vào dữ liệu từ ứng dụng đang chạy của bạn, một dịch vụ web có ý nghĩa hơn khi ứng dụng của bạn có thể lấy dữ liệu và cung cấp quyền truy cập thông qua các phương thức có thể truy cập công khai.

Bạn rất có thể muốn tạo giao diện để nhà phát triển có thể mã hóa giao diện và bạn có thể thay đổi hoạt động bên trong mà không ảnh hưởng đến chúng. Bất kỳ API nào sẽ được sử dụng bởi những người khác cũng phải được ghi lại rộng rãi.

5

Để tạo jar:

jar cf <jar_name> <sources> 
1

Vâng, phụ thuộc vào IDE của bạn. Tôi sử dụng Netbeans, vì vậy tôi chỉ cần nhấn xây dựng dự án, và viola! Một tệp jar được tạo trong thư mục của tôi được chỉ định. Bây giờ, đó chỉ là để biên dịch. Tất cả mọi người phải làm là tải xuống tệp .jar của bạn và nếu trong Netbeans, nhấp chuột phải vào thư viện, thêm jar/thư mục và chọn tệp đã tải xuống.

0

Bạn cũng có thể xem xét:

  • Bao gồm một số mẫu chứng minh làm thế nào để sử dụng thư viện của bạn
  • Xây dựng jar của bạn sử dụng Apache Maven
  • Đặt jar của bạn trong một kho maven công
  • Đãng phiên bản mới của thư viện khi bạn tìm/sửa lỗi
  • Nếu bạn muốn ẩn triển khai của mình, bạn có thể đóng gói lọ bằng cách làm xáo trộn, để nếu ai đó giải mã các lớp của bạn, thì cá tuyết e sẽ khó đọc
Các vấn đề liên quan