2009-09-03 37 views
6

Tôi đang cố gắng bắt đầu làm việc với Java, nhưng cho đến nay vẫn chưa thể có được nó trên máy của tôi đúng cách. Tôi thực sự muốn có thể biên dịch từ dòng lệnh. Sau khi làm theo các hướng dẫn here không có lỗi, tôi không thể biên dịch với javac. Dưới đây là những gì tôi có cho đến nay:Bắt Java JDK để biên dịch trên ubuntu

Khi tôi nhập:

$ java -version 

tôi nhận được:

java version "1.6.0_16" 
Java(TM) SE Runtime Environment (build 1.6.0_16-b01) 
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode) 

Khi tôi chạy:

$ sudo apt-get install sun-java6-jdk 

tôi nhận được:

~$ sudo apt-get install sun-java6-jdk 
Reading package lists... Done 
Building dependency tree   
Reading state information... Done 
Suggested packages: 
    sun-java6-demo sun-java6-doc sun-java6-source 
The following NEW packages will be installed: 
    sun-java6-jdk 
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded. 
Need to get 17.4MB of archives. 
After this operation, 55.7MB of additional disk space will be used. 
WARNING: The following packages cannot be authenticated! 
    sun-java6-jdk 
Install these packages without verification [y/N]? y 
Err http://us.archive.ubuntu.com hardy-updates/multiverse sun-java6-jdk 6-07-3ubuntu2 
404 Not Found [IP: 91.189.88.140 80] 
Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/multiverse/s/sun-java6/sun-java6-jdk_6-07-3ubuntu2_i386.deb 404 Not Found [IP: 91.189.88.140 80] 
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 

Khi tôi chạy:

$ /media/disk/School/java/hw1$ javac HelloWorldApp,java </pre> 

tôi nhận được:

The program 'javac' can be found in the following packages: 
* java-gcj-compat-dev 
* openjdk-6-jdk 
* gcj-4.2 
* kaffe 
* ecj 
* jikes-sun 
* jikes-sablevm 
* j2sdk1.4 
* jikes-classpath 
* jikes-gij 
* gcj-4.1 
* sun-java5-jdk 
* jikes-kaffe 
* sun-java6-jdk 
Try: sudo apt-get install <selected package> 
bash: javac: command not found 

Khi tôi cố gắng cập nhật (sử dụng sudo apt-get update) tôi nhận được:

E: The method driver /usr/lib/apt/methods/https could not be found. 

Đã có người khác gặp phải vấn đề này? Cảm ơn trước ...

+0

Ý bạn là gì bởi "không thể biên dịch"? Không thể tìm thấy chương trình javac? Lỗi biên dịch? –

+0

Bạn đã cài đặt thời gian chạy Java. Bạn có thể không có các công cụ phát triển được cài đặt (nơi trình biên dịch sống) –

+1

Có vẻ như, tại thời điểm đó, bạn không thể kết nối với máy nhân bản cụ thể mà bạn đang sử dụng.Vấn đề có thể ở hai đầu. Bạn thử lại không? Nó chắc chắn trông giống như một vấn đề với 'apt-get update'. –

Trả lời

6

Bạn có thể cài đặt JDK trên các phiên bản gần đây của Ubuntu bằng cách gõ lệnh sau:

sudo apt-get install sun-java6-jdk 

Bạn có thể tìm thấy điều này dễ dàng hơn cố gắng để thiết lập nó bằng tay.

+0

đã thêm thông tin này vào bài đăng gốc ... – danwoods

+0

@danwoods: có thể bạn chưa có một chỉ mục cập nhật. Hãy thử "sudo apt-get update" và sau đó thử cài đặt lại. –

+0

Rõ ràng vấn đề lớn hơn tôi nghĩ. Tôi đã thêm kết quả của lệnh đó vào bài đăng gốc của tôi – danwoods

1

Thông thường bạn sẽ tìm thấy java trong PATH chứ không phải javac trong bản cài đặt chuẩn của Ubuntu. Điều này chủ yếu là do gói gcj được cài đặt. Các liên kết cũng được tạo có thể được cập nhật bằng cách sử dụng các tập lệnh thay thế cập nhật .

Sau khi cài đặt của Sun JDK, bạn được yêu cầu để cập nhật các liên kết tượng trưng cho java, và điều này thường được thực hiện thông qua một lệnh tương tự như hình dưới đây

sudo update-alternatives --config java

Nếu không có liên kết cứng tới vị trí của (Sun) java, bạn có thể tạo nó bằng cách sử dụng lệnh tương tự như

sudo update-alternative - install/usr/bin/java java/usr/lib/jvm/jdk1. 6.0_07/jre/bin/java 300

Trong trường hợp của javac, bạn có thể tạo một liên kết tượng trưng, ​​một lần nữa bằng cách sử dụng các lựa chọn thay thế cập nhật bằng cách sử dụng:

sudo update-alternative - install/usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_07/ bin/javac 300

Điều này sẽ làm cho javac khả dụng trên PATH, giống như java.

Tất nhiên, có tùy chọn cập nhật biến PATH thông qua xuất đơn giản hoặc thông qua thay đổi đối với tệp cấu hình trình bao.

+0

Tôi không tin điều này đúng trong các phiên bản mới nhất của Ubuntu. Cài đặt như tôi đã đề cập ở trên nên cài đặt javac và làm cho nó có thể truy cập mà không có bất kỳ liên kết tượng trưng nào cả. –

+0

Tôi chưa xác minh điều đó vào 9,04. Nhưng tôi đã làm điều này trên các phiên bản 6.x-7.x. Có lẽ không phải trên 8.x. Nhưng tôi có những kỷ niệm đáng nhớ nhất đối với các vấn đề cấu hình trên các phiên bản. –

+0

Vâng, tôi nghĩ 8.04 là phiên bản đầu tiên bao gồm .debs mặt trời chính thức. Những công việc này tốt hơn nhiều so với cố gắng để cài đặt bằng tay, như là cần thiết trên các phiên bản trước. –

5

Hãy thử điều này:

  1. Tải Java SDK vào $ HOME/lưu trữ (ví dụ $ HOME/archives/jdk-6u16-linux-x64.bin).
  2. Trích xuất Java vào/opt (hoặc một vị trí khác nếu bạn không muốn sử dụng thư mục gốc). Ví dụ:

    cd/opt
    chmod 755 $ HOME/archives/jdk-6u16-linux-x64.bin
    sudo $ HOME/archives/jdk-6u16-linux-x64.bin

  3. Tạo một liên kết tượng trưng (để dễ dàng nâng cấp):

    sudo ln -s jdk1.6.0_16 jdk

  4. chỉnh sửa $ HOME/.bashrc

  5. .210
  6. Nối những dòng sau:

    JAVA_HOME =/opt/jdk
    PATH = $ PATH: $ JAVA_HOME/bin

  7. Nạp lại các biến môi trường:

    nguồn $ HOME/.bashrc

Bây giờ bạn có thể biên dịch chương trình.

Tôi thích phương pháp này để cài đặt gói được quản lý vì việc gỡ cài đặt (hoặc nâng cấp) dường như không loại bỏ tất cả các bit của SDK một cách hoàn hảo, và có vẻ như cản trở việc cài đặt nhiều phiên bản của Bộ phát triển phần mềm Java trên cùng một máy tại cùng một lúc. Tôi đã gặp vấn đề với apt-get và Java trong quá khứ. Ngoài ra, phương pháp này cho phép tôi hoàn toàn chắc chắn phiên bản Java nào đang được sử dụng bất cứ lúc nào.

Nếu bạn không cảm thấy thoải mái khi sử dụng root/opt, bạn có thể sử dụng tài khoản của riêng mình và $HOME/bin/jdk thay thế. Thay đổi tệp .bashrc cho phù hợp.

Xóa mọi phiên bản Java bạn đã cài đặt trước đó. Bạn có thể cần phải khởi động lại phiên thiết bị đầu cuối của bạn.

Tính năng này hoạt động với tất cả các phiên bản Java kể từ ít nhất Java 1.2.

+1

Phương pháp này thực sự hoạt động. Mặc dù nó có vẻ quá phức tạp. – Dananjaya

+0

Đây chỉ đơn giản là những gì nó * phải * được thực hiện để khắc phục các vấn đề như vậy – diegoaguilar

0

Tôi vừa gặp sự cố này trong khi cài đặt trình xác thực html từ http://validator.nu. Để cài đặt sun-java6-jdk tôi đã có thêm kho này: deb http://archive.canonical.com/ lucid partner

Để hoàn thành việc xác nhận cài đặt, tôi đã phải thiết lập (xuất khẩu) của tôi $JAVA_HOME-/usr/lib/jvm/java6-sun.

Thay đổi "sáng suốt" thành bất kỳ nội dung nào phù hợp với ấn bản Ubuntu của bạn.

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