2016-06-16 10 views
1

私は他の2人の同級生とのプロジェクトを持っています。 Dropboxを使用してプロジェクトを共有し、私たちの家から書いてもらうことができました(非常に良い選択ではありませんが、GitHubを使用するよりも簡単でした)。Javaオブジェクトストリームの共有

私の質問はオブジェクトストリームの共有です。 ストリームのファイルをコードの同じDropbox共有ディレクトリに配置したいとします。 しかし、私は自分のコンピュータのパスを使用する必要があります

File f = new File(PATH); 

ファイルを初期化するとき(C:\ユーザー**アレッサンドロ** \ Dropboxが) あなたはそれがアレッサンドロにリンクされ、そのためにされて見ることができるようにぼくのコンピュータ。 これは明らかに別のPCでは動作しません。 コンパイラにソースコード/ .classファイルの同じディレクトリを見るように指示するにはどうすればよいですか?

+2

これは、この質問と重複している可能性があります:http://stackoverflow.com/questions/6853877/reading-a-file-from-current-directory-in-java - 私はあなたがここで答えを見つけるべきだと思います。 Dropboxを使用してコードを共有することも非常に悪い考えです。あなたのコードを共有するためにgithubやBitbucketを試してみてください。バージョン管理に問題はありません – Supahupe

+0

あなたの質問ははっきりしません。トピックでは「オブジェクトストリーム」について説明し、最終的には絶対パスを使用せずにファイルを参照することについて質問します。そして、コンパイラはそれと何をしなければなりませんか? –

答えて

2

絶対パスは使用しないでください。 ./myfile.txtのような相対パスを使用します。プロジェクトディレクトリを現在のディレクトリとして起動します。 (これはEclipseのデフォルトです)しかし、開発と本番用の両方で動作することを確認する必要があります。

代わりに、プロパティファイルを作成し、そのパスを定義することもできます。あなたのコードはプロパティ名のみを参照し、各開発者は設定ファイルを調整することができます。詳しくは、Propertiesのマニュアルを参照してください。

3

あなたはJavaプログラムのクラスパスに相対ファイルの位置に対応するURLを取得するためにClass#getResource(java.lang.String)を使用することができます。

URL url = getClass().getResource("/path/to/the/file"); 
File file = new File(url.getPath()); 

注意ここ/がある、あなたのクラスパスのルートであることあなたのクラスファイルを含んでいるディレクトリの一番上。だからあなたのリソースはクラスパスのどこかに置かれて、それがあなたの友人のコンピュータで動作するようにする必要があります。

関連する問題