2012-09-27 54 views
8

Tôi không chắc liệu câu hỏi của tôi có liên quan nhiều hơn đến Ubuntu hay Java hay không, vì vậy hãy tha thứ cho tôi!Thêm thư viện vào Java CLASSPATH trong Ubuntu

Tôi cố gắng để biên dịch một chương trình java nhưng tôi nhận được lỗi sau:

package javax.comm does not exist 

Tôi đã tải về các yêu cầu gói comm.jar nhưng tôi không biết làm thế nào/nơi tôi nên cài đặt/sao chép tập tin này.

Tôi đọc ở đâu đó rằng điều này phải ở trong thư mục CLASSPATH nhưng tôi không có thư mục này.

Đây là những gì tôi nhận được cho java -version Tôi đoán đây có nghĩa là tôi đã cài đặt Java trong hệ thống của tôi:

java version "1.6.0_24" 
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1) 
OpenJDK Server VM (build 20.0-b12, mixed mode) 

Tôi cũng có những thư mục trong /usr/lib/jvm/:

default-java    java-1.7.0-openjdk-i386 java-6-openjdk-i386 
java-1.6.0-openjdk  java-6-openjdk   java-7-openjdk-common 
java-1.6.0-openjdk-i386 java-6-openjdk-common java-7-openjdk-i386 

Trả lời

12

Thông thường bạn chỉ định classpath khi bạn khởi động chương trình java của bạn với công tắc java -cp your.jar xxxx.java

Nhưng bạn cũng có thể vĩnh viễn thêm nó vào cài đặt java của bạn bằng cách sao chép jar để mặc định -java/jre/lib/ext thư mục.

Cuối cùng hãy nhìn vào câu hỏi này: Setting multiple jars in java classpath

+0

không hoạt động cho tôi .... – LoveToCode

1

Bạn có thể thử làm như sau:

  1. javac -cp comm.jar XXXXX.java hoặc
  2. export CLASSPATH=comm.jar:$CLASSPATH
7

Các biến môi trường CLASSPATH chứa một danh sách thư đại tràng được tách biệt các địa điểm Java nên tìm kiếm cho các lớp học. Hãy thử

export CLASSPATH=$CLASSPATH:/path/to/comm.jar 
1

Nếu bạn muốn biên dịch một lớp có tên foo.bar.Baz, bạn phải đặt file Baz.java trong một thư mục foo/bar và khởi động javac từ thư mục cha foo 's, tức là nếu bạn liệt kê các nội dung của thư mục hiện tại bạn có thể xem foo được liệt kê. Ngoài ra, có dòng -sourcepath lệnh switch:

javac -sourcepath .:/home/asdf/qwerty foo.bar.Baz.java 

Giả sử lớp học của bạn được khai báo như sau

import foo.bar.*; 
public class Baz {} 

bạn phải đặt mã này trong một file /home/raf/foo/bar/Baz.java, và chuyển đến thư mục /home/raf trước khi gọi trình biên dịch .

javac sẽ xuất ra lỗi "gói foo.bar không tồn tại" nếu không thể tìm thấy cây thư mục foo/bar trong đường dẫn nguồn của nó. Vì vậy, bạn có thể chuyển sang thư mục bên phải hoặc sử dụng công tắc -sourcepath để trỏ đến thư mục gốc của dự án, tức là thư mục chứa javax/comm.Đặt nguồn của bạn trong một thư mục như thế này:

+ /home/raf/project/src 
| 
+-/javax 
    | 
    +-/comm 

và gọi javac từ src thư mục

cd /home/raf/project/src 
javac $filenames 

hoặc với công tắc nói trên

javac -sourcepath /home/raf/project/src $filenames 

Bạn cần phải điều chỉnh CLASSPATH của bạn để cho javac biên dịch dựa vào lưu trữ hiện có.

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