2011-01-02 48 views
5

Cố gắng cài đặt Java (JDK 6) trên hệ thống Ubuntu mới của tôi và nhận một số lỗi bizarro. Đây là lần đầu tiên tôi sử dụng bất kỳ hương vị nào của của Linux và vì vậy tôi chắc chắn đó là vấn đề của người dùng (quyền hoặc cách khác).Các sự cố cài đặt Java trên Ubuntu

Tôi đã tải xuống tệp BIN trực tiếp từ trang web của Oracle (Java SE 6u23 dành cho Linux 64 bit). Điều này được mặc định để tải xuống/home/myUserName/Tải xuống.

Từ đó tôi đã chuyển tệp sang/opt/java, một thư mục mà tôi đã tạo, bởi vì (như một người mới sử dụng Linux) có ý nghĩa là thư mục mà Java nên đi.

sau đó tôi chạy 2 lệnh sau, theo hướng dẫn tôi tìm thấy trực tuyến với thùng chạy:

chmod +x jdk-6u23-linux-x64.bin 
sudo ./jdk-6u23-linux-x64.bin 

Bây giờ, trong lựa chọn thư mục của tôi// java Tôi thấy cả hai tập tin BIN và jdk1.6.0_23 thư mục dường như vẫn còn nguyên vẹn khi kiểm tra.

Nhưng, khi tôi mở một nhà ga mới và chạy java -version, tôi nhận được:

Chương trình 'java' có thể được tìm thấy trong các gói sau:
- gcj-4,4-jre -headless
- gcj-4.5 JRE-không đầu
- openjdk-6-jre-không đầu
Hãy thử: sudo apt-get install

gì đang xảy ra ở đây vậy?!?

(1) Tôi có sai khi thử và tạo/opt/java thư mục Java của mình không?
(2) Tôi có chạy sai lệnh không?
(3) Java 1.6.0_23 có được cài đặt trên máy của tôi không?
(4) Tất cả những mục tiêu gcj-xxx-headless đó là gì?!?!

Cảm ơn mọi đầu vào!

Trả lời

6

Tại sao tải một thùng, khi bạn có thể chỉ đơn giản là:

sudo apt-get install sun-java6-jdk 

Nếu không có bất kỳ lý do đặc biệt tại sao bạn muốn rằng cụ thể phiên bản từ trang web, bạn nên sử dụng apt-get vì nó sẽ chăm sóc tất cả những thứ như biến số PATH, v.v.

+0

Đối với người dùng 'bình thường' bạn là đúng, nhưng với tư cách là nhà phát triển Java, đôi khi bạn cần một phiên bản rất cụ thể để kiểm tra phần mềm của mình, như Java 6 update 20 hoặc 23, v.v. –

+2

@arjan: Là nhà phát triển Java, tôi không bao giờ cần bất cứ điều gì cụ thể hơn phiên bản vốn con số. Mặc dù, tôi nên nói rằng tôi chủ yếu phát triển các ứng dụng web và luôn sử dụng các tính năng ngôn ngữ phổ biến thấp nhất. –

+0

Thông thường trong các ứng dụng web mà bạn phát triển cho công ty của riêng bạn, máy chủ đích chứa một phiên bản Java rất cụ thể. Để loại trừ các lỗi ngớ ngẩn từ những thay đổi nhỏ giữa các phiên bản JDK, chúng tôi thường sử dụng tại các trạm phát triển của chúng tôi chính xác cùng một phiên bản như trên máy chủ của chúng tôi. Tất nhiên chúng tôi thường xuyên cập nhật phiên bản Java của máy chủ, vì vậy quy ước này không khiến chúng tôi bị kẹt trên các phiên bản Java cũ hơn. –

1

Bạn chỉ cần đặt các tệp nhị phân JDK vào một thư mục. Mặc dù theo quy ước/opt/java hoặc/opt/jdk thường được sử dụng, đây không phải là các thư mục được hệ thống tự động nhận dạng.

Tuy nhiên, bạn có thể cập nhật biến môi trường PATH của mình để bao gồm/opt/java/bin dir hoặc liên kết tượng trưng (ln -s)/opt/java/bin/java trong một trong các thư mục trên hệ thống của bạn. đường dẫn của bạn như/usr/bin/

+0

Tôi đánh giá cao ý kiến ​​của mọi người - tôi sẽ cố gắng tránh xa việc sử dụng apt-get vì tôi muốn biết mọi thứ hoạt động như thế nào, ngay cả khi tôi phải đi 3 bên quanh chuồng và phải mất nhiều thời gian/công sức hơn. Ater giải nén tarball Tôi còn lại với thư mục ** jdk1.6.0_23 ** đó trong/opt/java. Bây giờ tôi đang cố gắng tự đặt biến PATH bằng cách mở .bashrc và thêm ** PATH =/opt/java/jdk1.6.0_23/bin ** vào dòng cuối cùng. Làm như vậy kết quả với * java -version * outputting một cách chính xác, nhưng sau đó tôi mất tất cả các công cụ thiết bị đầu cuối của tôi như ls, cd, dir, rõ ràng, vv; lỗi nêu usr/bin không nằm trên PATH. Làm gì? – Zac

+0

Đây là một câu hỏi Unix thực sự cơ bản (đó thực sự không khác nhiều so với cách nó hoạt động trên Windows), nhưng bạn cần phải bao gồm đường dẫn cũ của bạn: path = new path + old path. Fur thêm chi tiết bạn muốn mở một câu hỏi mới nếu cần thiết. –

7

Tôi có sai khi thử và tạo/opt/java thư mục Java của tôi không?

Không thực sự. Nhiều nhà phát triển Java cài đặt nhiều bản cài đặt JDK và luôn sử dụng /opt/jdk1.6.0_23 hoặc các đường dẫn tương tự.Tệp bin bạn đã tải xuống không phải là một trình cài đặt , nhưng chỉ đơn thuần là trình giải nén. Nó không cài đặt các tệp nhị phân java vào các thư mục hệ thống như /bin.

Tôi thường tải xuống JDK và thực thi nó từ trong thư mục chính của mình và sau đó chuyển nó đến/chọn và thực hiện một chown.

Tôi có chạy sai lệnh không?

Không thực sự. Trong trường hợp bạn muốn cài đặt một JDK riêng biệt, bạn đã thực hiện nó một cách chính xác. Trong trường hợp bạn muốn tích hợp hệ thống, bạn nên sử dụng các gói phân phối cụ thể, chẳng hạn như gói được cài đặt thông qua aptitude install sun-java6-jdk hoặc tương tự.

bin bạn đã tải xuống là imho linh hoạt hơn vì tôi có thể sử dụng nó để cài đặt nhiều phiên bản Java trên cùng một hệ thống. Tôi biết đây là điều bạn không thường làm trên các máy Linux.

Nếu bạn muốn sử dụng mã nhị phân java trên dòng lệnh, bạn sẽ phải thiết lập thủ công các biến môi trường PATHJAVA_HOME. Tôi nghĩ rằng trên Ubuntu đó là/etc/môi trường hoặc/etc/profile hoặc một cái gì đó như thế.

Java 1.6.0_23 có được cài đặt trên máy của tôi không?

Không thực sự. Xem câu trả lời ở trên.

Tất cả những mục tiêu gcj-xxx-headless đó là gì?!?

GCJ là trình biên dịch Gnu cho Java. Rõ ràng, nó bao gồm một bộ phát triển Java và một môi trường chạy Java.

+1

Câu trả lời tuyệt vời, nhưng một nhận xét nhỏ: tệp bin thực sự không nhiều hơn là chỉ trích xuất vì nó cũng thực sự tạo ra một số nội dung. –

1

JDK bạn đã cài đặt từ Sun/Oracle là JDK gốc. JDK "không đầu" là giải pháp thay thế nguồn mở. Khi bạn chạy tệp tin JDK BIN, nó chỉ đơn giản là trích xuất các kho lưu trữ. Khi bạn nhập lệnh java -version, nó tìm thấy Java FOSS, không phải Java bạn đã trích xuất/opt. Như ai đó đã đề cập, các nhà phát triển giữ nhiều phiên bản của JDK. Nếu bạn muốn sử dụng Java của Oracle, thì bạn cần liên kết/usr/bin/java với /opt/jdk1.6.0_23/bin/java.

sudo ln -s /usr/bin/java /opt/jdk1.6.0_23/bin/java 

Để làm việc này, lệnh java hiện tại phải được đánh dấu lần đầu từ JDK "không đầu". (Thực hiện các thao tác sau trước lệnh trước.)

sudo mv /usr/bin/java /usr/bin/java_old 

Giả định rằng có một liên kết hoặc thực thi có tên java trong/usr/bin. Sử dụng lệnh nào để chắc chắn.

which java 
0

Để thêm một đường dẫn mới vào biến PATH hiện tại, bạn cần phải gõ này trong Terminal:

PATH=`echo $path`:/your/new/path 
export PATH

Nếu bạn đã mất biến PATH ban đầu của bạn, bạn có thể khôi phục bằng cách nhập này:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 
export PATH
0

Hãy thử:

rm -rf /usr/bin/javac 
rm -rf /usr/bin/jar 

ln -s /home/jdk1.6.0_13/bin/javac /usr/bin/javac 
ln -s /home/jdk1.6.0_13/bin/jar /usr/bin/jar 

Bằng cách này, linux bạn có thể tìm thấy java & & javac trong /usr/bin

+0

[liên kết] (http://fengbin2005.iteye.com/blog/1222849) http://fengbin2005.iteye.com/blog/1222849 – kkmike999

1

Hãy làm theo các bước dưới đây để cài đặt oracle java:

Tải các mới nhất Java SE SDK phiên bản.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

tar các Lưu Trữ:

tar -xzvf jdk-8-linux-x64.tar.gz 
mv jdk1.8.0 /opt 
cd /opt/jdk1.8.0 

bước này đăng ký các phiên bản tải về Java như một sự thay thế, và chuyển nó được sử dụng như là mặc định:

update-alternatives --install /usr/bin/java java /opt/jdk1.8.0/bin/java 1 
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0/bin/javac 1 
update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 1 
update-alternatives --set java /opt/jdk1.8.0/bin/java 
update-alternatives --set javac /opt/jdk1.8.0/bin/javac 
update-alternatives --set mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 

Kiểm tra

Để kiểm tra phiên bản của Java bây giờ bạn đang chạy

java -version 

Output

java version "1.8.0" 
Java(TM) SE Runtime Environment (build 1.8.0-b132) 
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode) 

Để kiểm tra trình duyệt plugin trình duyệt để http://www.java.com/ và bấm vào nút “Tôi có Java?”

Tham khảo: https://askubuntu.com/questions/437776/ubuntu-13-04-unable-to-install-jdk7

Các vấn đề liên quan