2017-05-08 6 views
1

$CLASSPATHには、Javaコンパイラがクラスを使用するためのjarファイルを探すパスのリストが含まれています。CLASSPATH変数が空の場合、Javaコードはどのようにコンパイルされますか?

入力すると:echo $CLASSPATH空の行が表示されます。つまり、CLASSPATHは空です。コマンドでコンパイル

import java.util.ArrayList; 

public class Main { 

    public static void main(String[] args) { 
    ArrayList<String> arrayList = new ArrayList<>(); 
     arrayList.add("Hello"); 
     System.out.println(arrayList);   
    } 
} 

と::正常にコンパイル

javac Main.java 

ファイル

は今、私は次のコードを書きました。 CLASSPATHが空の場合、Javaコンパイラはどのようにしてクラス java.util.ArrayListを見つけましたか? Oracleのドキュメントから

答えて

1

CLASSPATH変数は、ユーザクラスを探すために JDKツールなどのアプリケーションを、伝えるための一つの方法です。 ( JRE、JDKプラットフォームの一部であるクラス、および拡張は、ブートストラップクラスパスまたは拡張ディレクトリとして、他の 手段によって定義されるべきである。)

そこで、classpathは、ユーザクラスとのために実際にArrayListはJDKの一部です。また:

クラスパスのデフォルト値は、唯一 カレントディレクトリは完全な説明については

はここを見て検索されることを意味する「」:java paths

+0

OK。ブートストラップクラスのパスはどのように見えますか? – CrazySynthax

+1

@CrazySynthax変更したい場合は、 'java'' -Xbootclasspath'オプションを使用することができます([X options](https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/)。 optionX.html))...しかし何のために?デフォルトは大丈夫です...デフォルトを確認するには - 私はあなたが少しGoogleになると思います... – Plirkee

関連する問題