2012-11-12 72 views
6

Đây có thể là một câu hỏi phổ biến nhưng tôi không thể thêm đường dẫn lớp cho tệp JAR trong UBUNTU. Tôi đã đưa ra dưới đây tất cả các chi tiết tôi biết:thêm đường dẫn lớp JAR trong UBUNTU

java nằm ở đây: o/p của which java lệnh là - /usr/bin/java

sudo vim /etc/bash.bashrc 
export CLASSPATH=$CLASSPATH:/downloads/aws-java-sdk-1.3.24/lib/aws-java-sdk-1.3.24.jar 

ps: thư mục tải là trực thuộc gốc

sudo vim /etc/environment 
CLASSPATH="/usr/lib/jvm/jdk1.7.0/lib: /downloads/aws-java-sdk-1.3.24/lib/aws-java-sdk-1.3.24.jar:" 

Như bạn có thể thấy, tôi đã thêm đường dẫn lớp trong bashrc và vv/môi trường ... nhưng tôi vẫn gặp lỗi khi cố gắng chạy S3Sample.java đi kèm với awssdk cho java.

khi tôi biên dịch file java, tôi nhận được các lỗi sau đây:

[email protected]:/downloads/aws-java-sdk-1.3.24/samples/AmazonS3$ javac S3Sample.java 

S3Sample.java:25: error: package com.amazonaws does not exist 
import com.amazonaws.AmazonClientException; 

Bây giờ, tôi hiểu rõ rằng các file JAR không được thêm vào các đường dẫn lớp và vì vậy tôi không nhận lỗi. Tôi cũng đã cố gắng javac với tùy chọn đường dẫn lớp - nhưng nó không hoạt động :(

PS: nhà JAVA được thiết lập một cách chính xác như các chương trình java khác hoạt động đúng

+0

kết quả của echo $ CLASSPATH là gì? Và bạn đã thử chạy với tùy chọn -classpath chưa? – Perception

+0

@Perception tôi đã thử lệnh này - javac -cp '.: Abc.jar' test.java ... hoạt động tốt nhưng tôi muốn chỉ định nhiều tệp JAR thay vì một tệp. Bạn có thể giúp tôi với đó? – user1736333

Trả lời

7

Để thiết lập classpath, nó là trong hầu hết các. trường hợp tốt hơn để sử dụng lập luận -cp hoặc -classpath khi gọi javacjava. Nó giúp bạn linh hoạt hơn để sử dụng classpaths khác nhau cho các ứng dụng java khác nhau.

với -cp-classpath luận classpath của bạn có thể chứa nhiều lọ và nhiều địa điểm tách với : (dấu hai chấm)

javac -cp ".:/somewhere/A.jar:/elsewhere/B.jar" MyClass.java 
java -cp ".:/somewhere/A.jar:/elsewhere/B.jar" MyClass 

Mục classpath trong ví dụ thiết lập classpath để chứa các thư mục làm việc hiện hành (.), và hai tập tin jar A.jarB.jar.

Nếu bạn muốn sử dụng biến môi trường CLASSPATH bạn có thể làm

export CLASSPATH=".:/somewhere/A.jar:/elsewhere/B.jar" 
javac MyClass.java 
java MyClass 
Các vấn đề liên quan