0

ファイルの読み込みに少し問題が発生しました。(画像ではなく、実際には.txtなどのファイルです)Netbeansで正常にロードされます

    File myfile = new File("a/b/myfile.abc");

問題は、コンパイルされた jar が例外を取得し、ファイルが見つからないことです。ストリームなどではなく、ファイルとして必要です。それが問題であり、それをロードするために頭に浮かんだことはすべて試しました。私はそれを(jarの中からではなく)外部からロードしたいと思っていますgetRessource(AsStream).

編集:わかりましたので、コンパイルされたときとコンパイルされていないときに絶対パスを出力させました。コンパイルされていないパス:

C:\Users\USERNAME\Documents\NetBeansProjects\ProjectName\a\b\myfile.abc <-- Correct Path

コンパイルされたパス:

C:\Users\USERNAME\a\b\myfile.abc <-- Not Correct Path

誰でもこれを修正する方法を教えてもらえますか? EDIT²:cmd(cdなど)で正しいフォルダーに移動し、その後jarを開始すると、フォルダーは正しいディレクトリからロードされます。何を変更する必要があるか誰か教えてもらえますか? EDIT³:cmdで開始しない場合、Windows/system32のフォルダーを検索するようです:O

4

1 に答える 1

0

でファイルを作成するとき

new File("abc.txt")

ファイルは現在のディレクトリにあるabc.txtはずです。現在のディレクトリは、アプリケーションを実行するために java コマンドが起動されるディレクトリです。そのため、c:\foo\barにいて を実行するjava -cp d:\java\app\MyApplication.jar MyApplicationと、 file が検索されますc:\foo\bar

アプリケーションの jar の場所は無関係であり、ファイルが検索される場所には何の影響もありません。現在のディレクトリが重要です。

于 2013-11-23T13:46:02.547 に答える