1

ファイルから読み取る 1 つのクラスを含む大規模なプロジェクトがあります (以下に SSCCE を含めました)。すべてが正常に機能します。ただし、Apple Jar Bundler または Eclipse の「Export to Mac OS X Application コマンド」を使用すると (これらの手順に従って)、機能せず、java.io.FileNotFoundException.

FileNotFoundExceptionなぜこれを取得するのか、どうすれば防止できるのかを調べようとしています。私の推測では、Eclipse は独自のクラスローダーまたは何かを使用しており、そのクラスローダーはエクスポートされたファイルで適切に呼び出されていないjarため、app.

SSCCE: 次のコードは、Eclipse から実行すると機能しますが、ディレクトリから実行された.appjava -jar、またはからは機能しません。java readfromfile.ReadFromFilebin

ReadFromFile.java:

package readfromfile;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ReadFromFile {
    public static void main(String[] args) {
        String filepath = "src/readfromfile/file.txt";
        try {
            BufferedReader br = new BufferedReader(new FileReader(filepath));
            JFrame frame = new JFrame();
            frame.getContentPane().setLayout(
                    new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
            for (String line; (line = br.readLine()) != null;) {
                frame.getContentPane().add(new JLabel(line));
            }
            frame.pack();
            frame.setVisible(true);
        } catch (FileNotFoundException e) {
            System.err.println("File not found");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("IOexception");
            e.printStackTrace();
        }
    }
}

file.txt : _

I am text
4

1 に答える 1