这可能是一个常见问题,但我无法在UBUNTU中为JAR文件添加类路径。我已经在下面给出了我所知道的所有细节:
java位于:
which java
命令的o / p为 - /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:downloads文件夹直接位于根目录
下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:"
正如您所看到的,我在bashrc和etc / environment中添加了类路径...但是在尝试运行java的awssdk附带的S3Sample.java
时仍然出现错误。
当我编译java文件时,我收到以下错误:
ubuntu@domU-12-31-39-03-31-91:/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;
现在,我清楚地知道JAR文件没有添加到类路径中,因此我没有收到错误。我也尝试了javac
类路径选项 - 但它不起作用:(
PS:JAVA home设置正确,因为其他java程序正常工作。
答案 0 :(得分:9)
要设置类路径,在大多数情况下,在调用-cp
和-classpath
时使用javac
或java
参数会更好。它为您提供了更多灵活性,可以为不同的Java应用程序使用不同的类路径。
使用-cp
和-classpath
参数,您的类路径可以包含多个jar和多个以:
(冒号)分隔的位置
javac -cp ".:/somewhere/A.jar:/elsewhere/B.jar" MyClass.java
java -cp ".:/somewhere/A.jar:/elsewhere/B.jar" MyClass
示例中的类路径条目将类路径设置为包含当前工作目录(.
)以及两个jar文件A.jar
和B.jar
。
如果您想使用CLASSPATH
环境变量,可以
export CLASSPATH=".:/somewhere/A.jar:/elsewhere/B.jar"
javac MyClass.java
java MyClass