2012-11-12 21 views
6

これはよくある質問ですが、UBUNTUにJARファイルのクラスパスを追加できません。私が知っているすべての詳細の下に与えている: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:ダウンロードフォルダはルート直下

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にクラスパスを追加しましたが、awssdk for javaに付属のS3Sample.javaを実行しようとするとエラーが発生します。私はJavaファイルをコンパイルするとき

、私は、次のエラーを取得:

[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; 

は今、私ははっきりとJARファイルをクラスパスに追加されていないので、私はエラーを取得しておりませんことを理解しています。私はまた、クラスパスオプションでjavacを試してみた - しかし、それは動作しません:(

PS:JAVAホームが正しく設定されている他のJavaプログラムが正常に動作して

+0

ますecho $ CLASSPATHの結果は何を行うことができますか?そして、あなたは-classpathオプションで実行しようとしましたか? – Perception

+0

@Perception私はこのコマンドを試しました - javac -cp ':abc.jar' test.java ...これは問題なく動作しますが、1つではなく複数のJARファイルを指定します。あなたはそれで私を助けることができますか? – user1736333

答えて

7

をクラスパスを設定するには、それがほとんどです。 javacjavaを呼び出すとき-cpまたは-classpath引数を使用する場合より良い。それはあなたに別のJavaアプリケーションの異なるクラスパスを使用するより多くの柔軟性を提供します。

-cp-classpath引数がクラスパスには、複数のjarファイルと複数の場所分離を含めることができます:(コロン)

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

例のクラスパスエントリは、現在の作業ディレクトリ(.)を含むようにクラスパスを設定し、2つのJARファイルA.jarB.jar

あなたはCLASSPATH環境変数を使用したい場合は、

export CLASSPATH=".:/somewhere/A.jar:/elsewhere/B.jar" 
javac MyClass.java 
java MyClass 
関連する問題