この記事は、CLASSPATH 以外のパスを含む JAVA パスを取得する方法の詳細な分析と紹介です。必要な友人はそれを参照してください
オンラインで JAVA パスを取得するいくつかの方法を要約します:
注: ANT を使用してプログラムを開始します。 this.getClass().getResource("") によって得られる結果は、JAVA コマンド ラインを使用して直接デバッグできます。
現在のクラスのクラスパスと絶対パスを取得するいくつかのメソッド
CLASSPATH外のパスを取得するメソッド:
URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name
現在のクラスのクラスパスと絶対パスを取得するいくつかのメソッドを次に示します。 必要なリソースへの絶対パスを取得するには、これらのメソッドのいくつかを使用する必要がある場合があります。
1.FileTest.class.getResource("")
例: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/
2.FileTest.class.getResource("/")
取得するのは、現在のクラスパスの絶対 URI パスです。
例: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
3.Thread.currentThread().getContextClassLoader().getResource("")
取得するものは、現在の ClassPath の絶対 URI パスでもあります。
例: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
4.FileTest.class.getClassLoader().getResource("")
取得するものは、現在の ClassPath の絶対 URI パスでもあります。
例: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
5.ClassLoader.getSystemResource("")
取得するものは、現在の ClassPath の絶対 URI パスでもあります。
例: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
Thread.currentThread().getContextClassLoader().getResource("") を使用して、絶対パスの URI 表現を取得することをお勧めします。現在のクラスパス。
Web アプリケーションでは、通常、ServletContext.getRealPath ("/") メソッドを通じて Web アプリケーションのルート ディレクトリの絶対パスを取得します。この方法では、Web アプリケーションのルート ディレクトリに対する相対パスを指定するだけで、リソースを見つけるための絶対パスを構築できます。
注:
1. System.getProperty ("user.dir") の現在のユーザー ディレクトリを基準とした相対パスを使用しないようにしてください。これは時限爆弾であり、いつでも死亡する可能性があります。
2. URI 形式の絶対パス リソースを使用してみてください。これは、URI、URL、および File オブジェクトに簡単に変換できます。
3. クラスパスに対する相対パスを使用してみてください。絶対パスは使用しないでください。上記の ClassLoaderUtil クラスのパブリック静的 URL getExtendResource(StringrelativePath) メソッドを使用すると、クラスパスに対する相対パスを使用してすべての場所にあるリソースを見つけることができます。
4. ハードコードされた絶対パスは決して使用しないでください。なぜなら、ClassLoader クラスの getResource("") メソッドを使用して、現在のクラスパスの絶対パスを取得できるからです。
ハードコードされた絶対パスの使用はまったく必要ありません。それは間違いなくあなたの死を醜く見せるでしょう!プログラムは移植できません。
絶対パスを指定する必要がある場合は、ハードコーディングよりも構成ファイルを使用する方がはるかに優れています。
もちろん、リソースの絶対パスを記述するためにクラスパスの絶対パスを取得するプログラムを使用することをお勧めします
以上がCLASSPATH外のパスの詳細な説明を含むJAVAパスを取得します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。