javaファイルを読むPathは以下の状況に注意します.
1908 ワード
基礎的なものですが、やはり時間をかけて書いてみたいです.前に実際のプロジェクトでこのような問題がありました.
前に書いた例でこのことを説明します.
http://tangmingjie2009.iteye.com/blog/510459
もしあなたが開発したプログラムにカスタムファイルを読む機能があると、実際にはよく見られます.下記のようなコードを書きました.
開発に成功して、eclipseで楽しいです.OKです.JARバッグを作って、ユーザーに使います.
ユーザーがE:/f 1/f 11/testPath.jarにインストールします.大丈夫です.
起動します
cd E://f 1/f 11/
java-jar testPath.jar
わあ、大丈夫です.プログラムがとても上手です.
しばらくの時間の後で、ユーザーは毎回CDに入ってどれだけ疲れることかを発見して、簡単なバッチを書いて処理します.
java-jar E://f 1/f 11/testPath.jar
問題が来ました.ある日突然ユーザーから電話がありました.間違いました.
どうして書類が読めなくなりましたか?カタログを見に行きます.ファイルはここにあります.コードは変えられないです.ファイルも元のディレクトリにあります.どうして読み物が見つからないですか?いろんな悩みがあるでしょう
最後に元の起動方法がちょっと違っていることに気づきました.CDを見ると、CDを使わないで外で直接読むのとは違います.
以下は直接に二つのケースの出力をコピーします.コードは前のリンクにあります.
前に書いた例でこのことを説明します.
http://tangmingjie2009.iteye.com/blog/510459
もしあなたが開発したプログラムにカスタムファイルを読む機能があると、実際にはよく見られます.下記のようなコードを書きました.
String fileName = "config.properties";
String path =System.getProperty("user.dir")+File.separator+fileName;
File f = new File(path);
InputStream is =new FileInputStream(f);
//... read
開発に成功して、eclipseで楽しいです.OKです.JARバッグを作って、ユーザーに使います.
ユーザーがE:/f 1/f 11/testPath.jarにインストールします.大丈夫です.
起動します
cd E://f 1/f 11/
java-jar testPath.jar
わあ、大丈夫です.プログラムがとても上手です.
しばらくの時間の後で、ユーザーは毎回CDに入ってどれだけ疲れることかを発見して、簡単なバッチを書いて処理します.
java-jar E://f 1/f 11/testPath.jar
問題が来ました.ある日突然ユーザーから電話がありました.間違いました.
どうして書類が読めなくなりましたか?カタログを見に行きます.ファイルはここにあります.コードは変えられないです.ファイルも元のディレクトリにあります.どうして読み物が見つからないですか?いろんな悩みがあるでしょう
最後に元の起動方法がちょっと違っていることに気づきました.CDを見ると、CDを使わないで外で直接読むのとは違います.
以下は直接に二つのケースの出力をコピーします.コードは前のリンクにあります.
// ,CD
E:\>cd f1\f11
E:\f1\f11>java -jar testPath.jar
---------test group 1---------
file:/E:/f1/f11/
file:/E:/f1/f11/
file:/E:/f1/f11/
file:/E:/f1/f11/
file:/E:/f1/f11/
---------test group 2---------
jar:file:/E:/f1/f11/testPath.jar!/cn/tang/test/
---------test group 3---------
E:\f1\f11
E:\f1\f11
// , CD ,
E:\f1\f11>cd ..
E:\f1>cd ..
E:\>java -jar ./f1/f11/testPath.jar
---------test group 1---------
file:/E:/f1/f11/
file:/E:/f1/f11/
file:/E:/f1/f11/
file:/E:/f1/f11/
file:/E:/f1/f11/
---------test group 2---------
jar:file:/E:/f1/f11/testPath.jar!/cn/tang/test/
---------test group 3---------
E:\
E:\
結果を見てください.分かります.