Chúng ta có thể sử dụng Java cho mục đích thương mại không?


49

Java là giấy phép GPL (tham khảo từ wikipedia). Tôi không chắc chắn tôi có thể sử dụng nó trong các dự án thương mại. Tôi đã có một trang web được viết bằng Java và tôi dự định sử dụng trang này cho mục đích thương mại. Điều đó có bất hợp pháp không?



2
@Sathya Câu hỏi đó là về việc sử dụng plugin GPL trong ứng dụng Java. Câu hỏi này dường như là về tính hợp pháp của việc sử dụng chính Java.
Adam Lear

6
@Shisoft Xem xét có bao nhiêu ứng dụng Java thương mại ngoài kia, tôi không nghĩ bạn có gì phải lo lắng. Bạn sẽ thấy ít nhất một vài vụ kiện nếu nó không ổn.
Adam Lear

Java SE không còn là GPL nữa, nó là BCL. Oracle có thể tự do thay đổi giấy phép khi họ muốn. (Câu hỏi thường gặp # 8 oracle.com/technetwork/java/javase/overview/ cấp ). Điều đó đang được nói, Oracle không thể đổi tên các phiên bản Java cũ hơn được phát hành theo GPL.
snmcdonald

3
@snmcdonald OpenJDK 6 & 7 tiếp tục được cấp phép dưới dạng GPL với Classpath Exception. "Mặt trời" JDK 6 và trước đó chưa bao giờ là GPL. (IANAL)
Tom Hawtin - tackline

Câu trả lời:


80

Giấy phép GPL áp dụng cho nguồn Java, không áp dụng cho các ứng dụng được tạo bằng Java. Bạn chỉ nên quan tâm nếu bạn đang mở rộng / sửa đổi ngôn ngữ Java và bán lại kết quả dưới dạng sản phẩm thương mại (hoặc bất kỳ giấy phép không GPL nào khác).


8
Đây là lúc âm u tốt nhất, đó là lý do tại sao có GPL với Classpath Exception. Mã chạy trên JDK được liên kết với thư viện Java. Mã được liên kết với mã GPL được coi là GPLed (tùy theo sự giải thích của các khu vực pháp lý có liên quan). (Tôi không phải là một lớp!)
Tom Hawtin - tackline

3
@tom - nó được gọi là ngoại lệ thư viện chuẩn - nếu không, tất cả mã được gọi vào nhân Linux GPLed sẽ phải là GPL
Martin Beckett

4
@Tom: đó chính xác là lý do tại sao ngoại lệ classpath tồn tại, để đảm bảo rằng mã Java được biên dịch (tất cả đều dựa trên các thư viện chuẩn là GPL nếu bạn đã tải xuống bản phát hành OpenJDK, chứ không phải nếu bạn đã tải xuống bản phát hành thương mại) GPL.
jwenting

Câu trả lời này chỉ đúng vì nó được phát hành theo GPL với ngoại lệ classpath và không phải GPL thô
ihebiheb

19

OpenJDK được cấp phép theo GPL với Classpath Exception . Phần Classpath Exception rất quan trọng. Nó cho phép bạn sử dụng OpenJDK với phần mềm của bất kỳ giấy phép nào, không chỉ GPL. Đặc biệt, bạn có thể sử dụng OpenJDK với phần mềm độc quyền.


2
@Shisoft Các triển khai "Mặt trời" của Java SE 6 trở về trước được cấp phép theo nhiều loại giấy phép, một số trong số chúng miễn phí như trong bia, nhưng không [như] bất kỳ hương vị nào của GPL. OpenJDKs 6 & 7 (6 là cổng lùi của 7), là GPLv2 với Classpath Exception. Dự định cũng sẽ thực hiện một bản phát hành "Mặt trời" của JDK7.
Tom Hawtin - tackline

17

Java nhị phân JDK KHÔNG phải là GPL, nó là BCL. Oracle có thể tự do thay đổi giấy phép khi họ muốn. ( Câu hỏi thường gặp # 8 ) Điều đó có nghĩa là, Oracle không thể từ bỏ các phiên bản Java cũ hơn được phát hành theo GPL.

Luôn luôn tham khảo Giấy phép để biết thông tin cập nhật. Cho đến ngày hôm nay, giấy phép nêu rõ :

Sử dụng nội bộ / nội bộ: Các nhị phân nền tảng Java SE (JDK và JRE) được cấp phép theo Giấy phép mã nhị phân của Sun (BCL) với các điều khoản bổ sung. Đối với hầu hết các nhà phát triển và người dùng cuối, JDK nhị phân và JRE nhị phân là tất cả những gì cần thiết để trải nghiệm thế giới công nghệ Java. SỬ DỤNG: JDK và JRE nhị phân có sẵn miễn phí từ Sun (theo các điều khoản của BCL) để sử dụng với máy tính cá nhân để bàn. Việc sử dụng JDK hoặc JRE cho các thiết bị nhúng và các môi trường máy tính khác có thể yêu cầu phí giấy phép từ Sun. Đọc thêm về việc sử dụng nhúng Java SE hoặc liên hệ với văn phòng Sun địa phương của bạn để lấy giấy phép.

Hãy nhớ rằng bạn không thể phát hành Java SE trên một thiết bị nhúng (nghĩ rằng Google Android) như được nêu trong Câu hỏi thường gặp.

Nguồn Java SDK có sẵn theo giấy phép SCSL và JPL.

Mã nguồn: Mã nguồn JDK có sẵn cho các nhà nghiên cứu và những người khác muốn khám phá các chi tiết của JDK. Mỗi bản phát hành có giấy phép riêng hoặc bộ giấy phép thường bao gồm các điều khoản của Giấy phép nguồn cộng đồng Mặt trời (SCSL). Sun gần đây đã bắt đầu cung cấp quyền truy cập đơn giản vào mã nguồn JDK theo Giấy phép nghiên cứu Java (JRL) mới. Lưu ý rằng trong cả hai trường hợp (SCSL hoặc JRL), nếu bạn quyết định sử dụng nội bộ dự án của mình để sử dụng sản xuất hoặc phân phối sản phẩm của mình cho người khác, bạn phải ký thỏa thuận thương mại và đáp ứng các yêu cầu tương thích Java. Liên lạc với văn phòng Sun địa phương của bạn để có được một thỏa thuận.


2
-1 Từ ngữ của bạn cho thấy rằng các bản tải xuống phân phối JDK do Sun / Oracle cung cấp đã từng là GPL, nhưng không còn nữa. Đây không phải là sự thật. Họ không bao giờ là GPL. Cái đã và đang được phát hành theo GPL là OpenJDK , khác với các bản phát hành JDK thương mại. Là chủ sở hữu bản quyền của OpenJDK, họ có thể tự do cung cấp các bản phát hành thương mại, không phải GPL, các sản phẩm phái sinh của OpenJDK.
Chris Jester-Young

2
Ngoài ra, trong Câu hỏi thường gặp về OpenJDK : "Oracle JDK dựa trên mã nguồn OpenJDK. Ngoài ra, nó có chứa các thành phần nguồn đóng. Kết quả cuối cùng được cấp phép theo Giấy phép mã nhị phân." Nội dung nguồn đóng là nội dung từ bên thứ ba mà họ không thể truy cập lại. Để phân phối OpenJDK hoàn toàn miễn phí, hoàn toàn miễn phí, có IcedTea (đây là thứ mà hầu hết các nhà phân phối GNU / Linux sử dụng làm triển khai Java chính của họ).
Chris Jester-Young

5

Bạn đang nhầm lẫn một số điều.

  • GPL là một giấy phép liên quan đến việc phân phối lại phần mềm. Ngay cả khi trình biên dịch Java bạn sử dụng là GPL'ed, điều này sẽ không ngăn bạn phân phối phần mềm của riêng bạn, vì điều đó khác với phân phối lại Java. (Và thời gian chạy Java có thể được tải xuống riêng biệt từ Oracle).
  • GPL không tương thích với phần mềm thương mại. Một số câu trả lời ở đây dường như khó hiểu "độc quyền so với miễn phí (như trong lời nói)" với "thương mại so với miễn phí (như trong bia)". Đó là sự cẩn thận thực sự phải được thực hiện khi bán phần mềm GPL (bán được tính là "phân phối lại"), nhưng không phải là không thể làm được.
  • Việc triển khai Java của Oracle không phải là GPL'ed. Đọc giấy phép của nó ở đây .
  • Open JDK là một triển khai GPL , nhưng như đã đề cập ở trên, điều này không làm cho nó không tương thích với phần mềm thương mại.

1

Như tôi biết, theo giấy phép hiện tại Java thuộc BCL (Giấy phép mã nhị phân của Sun), bạn có thể sử dụng JDK và JRE miễn phí cho mục đích thương mại. Sử dụng ECLIPSE làm IDE của bạn làm điểm để phát triển mã Java của bạn. Nó là một mã nguồn mở, do đó bạn không cần bất kỳ sự ràng buộc nào cho cùng. Khi bạn đang làm việc trên dự án, bạn sẽ cần nhiều công cụ khác để thực hiện các công cụ khác nhau. Hầu hết các chức năng cần thiết được cung cấp dưới dạng bổ trợ (có thể tải xuống) trong nhật thực.


-1

Sau khi chuyển sang BLC Java, toàn bộ việc cấp phép sử dụng Java phải tuân theo giải thích có nghĩa là "liên hệ với Oracle nếu bạn muốn thực sự chắc chắn".

Điều đó có nghĩa là trả tiền nếu họ muốn bạn trả tiền. Theo BLC, Java có thể được sử dụng tự do cho "Máy tính và máy chủ để bàn đa năng" (như trong http://www.oracle.com/technetwork/java/javase/terms/license/index.html ), với định nghĩa bao gồm các từ "tính toán mục đích chung".

Tôi không biết liệu máy tính của tôi có phải là máy tính có mục đích chung hay không - bạn có chắc là máy tính của bạn không? Oracle cũng đã thêm các mệnh đề như "được sử dụng cho các chức năng tính toán chung dưới sự kiểm soát của người dùng cuối".

Kiểm tra với bộ phận pháp lý của bạn.


5
Đây là FUD. Tôi thấy rất nhiều công ty xung quanh tôi, bao gồm các ngân hàng tên tuổi, sử dụng Java mà không có bất kỳ suy nghĩ nào về vấn đề cấp phép.
quant_dev

Hỏi Google nếu nó gây ra bất kỳ vấn đề. Chủ nghĩa hoài nghi trong việc tin tưởng Oracle liên quan đến việc giải thích bản quyền của họ được bảo đảm với mức điều chỉnh là 9 tỷ đô la. Tôi hy vọng bạn đúng - nhưng tôi cá là Google cũng nghĩ như vậy. Oracle gần đây đã thực hiện một thỏa thuận lớn từ việc thay đổi giấy phép, vì vậy có lẽ họ hy vọng giấy phép đó sẽ mang lại $$. emptor caveat
Jeff K

-3

Theo như tôi biết hiện tại, GPL chỉ giới hạn việc sử dụng mã nguồn của mã hoặc chương trình được cấp phép với nó (trong trường hợp này là chương trình chạy mã Java). Nhưng nó không giới hạn mã Java.


Tôi không sử dụng mã, chỉ thư viện của nó. Còn cái đó thì sao?
Shisoft


1
Câu trả lời của bạn là mơ hồ. Bạn đang nói "không" với tiêu đề "chúng ta có thể sử dụng java cho mục đích thương mại không" hay bạn đang nói "không" với phần cuối của câu hỏi "có bất hợp pháp không"?
Bryan Oakley

-3

Bạn có thể biên dịch một ứng dụng bằng gcc, đây là phần mềm miễn phí. Sau đó, bạn có thể cấp phép cho ứng dụng của mình theo ý muốn, nhưng không phải trình biên dịch gcc.


3
Lần trước tôi đã kiểm tra, gcc không biên dịch Java.
Dan Pichelman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.