javaのルート

1473 ワード

javaを学ぶ過程でよく道に関する問題に出会います。結局は絶対パスを使うのですか?それとも相対パスを使うのですか?
個人的には相対的なパスを使うことを勧めます。絶対パスを使うと後期プロジェクトが発表される時に多くの問題が発生します。
 
相対パスはどうやって使いますか?
一、
System.getProperty("user.dir");
“.” , “user.dir” 。
:F:\Java\Pattern\dave_spring2,
二、
Thread.currentThread().getContextClassLoader().getResource("");
   :file:/F:/Java/Pattern/dave_spring2/bin/, classPath
   URL ,URL URI ,URL / , java :file;jar:file 。

Thread.currentThread().getContextClassLoader().getResource("").getPath();
   :/F:/Java/Pattern/dave_spring2/bin/, classpath
三、webプログラムでは、以下の方法で相対パスを得ることもできます。
ServletContext.getRealPath("/")
四:まとめ
1.System.get Property(「user.dir」)現在のユーザディレクトリに対する相対パスは、できるだけ使わないでください。これは時限爆弾です。いつでもあなたの命が必要です。 2.できるだけURI形式の絶対パスリソースを使用する。URI,URL,Fileオブジェクトに簡単に変換できます。 3.できればclassipathに対する相対パスを使用します。絶対パスは使用しないでください。上のClass LoaderUtil類のpublic static URLを使ってget ExtentdResource(String relativePath)
方法は、classipathに対する相対的な経路を使用して、すべての位置のリソースを特定することができるようになった。4.ハードコードの絶対パス(D:\***)は絶対に使用しないでください。なぜなら、Class Loader類のget Resource(「」)法を使用して、現在のクラスパスの絶対パスを得ることができるからです。 ハードコードを使う絶対パスは全く必要ありません。それはきっとあなたを死なせます。みっともないです。プログラムは移植できません。 絶対パスを指定したいなら、配置ファイルを使っても、ハードコードよりずっといいです。 もちろん、私はやはりあなたがプログラムを使って、claspathの絶対パスを得て資源の絶対パスをつづり合わせます。