由于从文件

时间:2016-10-10 16:48:22

标签: java netbeans jar jcombobox

我是Java的初学者,我试图让我的应用程序更好。 所以我有一个方法用文本文件中的项填充jcombobox。 方法是

private void fillComboBox(JComboBox combobox, String filepath) throws FileNotFoundException, IOException {

    BufferedReader input = new BufferedReader(new FileReader(filepath));
    List<String> strings = new ArrayList<String>();
    try {
        String line = null;
        while ((line = input.readLine()) != null) {
            strings.add(line);
        }
    } catch (FileNotFoundException e) {
        System.err.println("Error, file " + filepath + " didn't exist.");
    } finally {
        input.close();
    }

    String[] lineArray = strings.toArray(new String[]{});

    for (int i = 0; i < lineArray.length - 1; i++) {
        combobox.addItem(lineArray[i]);
    }

}

我正确使用它

fillComboBox(jCombobox1, "items");

带有项目的文本文件位于netbeans项目的根目录中。 从netbeans运行应用程序时它非常有效。但是当我构建项目并创建.jar文件时。它没有运行。我试图从命令行运行它。 这就是我得到的。

  

java.io.FileNotFoundException:items(系统无法找到该文件。)

如何处理?我没找到任何东西。我不知道哪里有问题,因为它在netbeans中运行良好。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

.jar文件是否位于同一根目录中?

您导出的.jar文件可能在其他目录中运行,但无法找到该文本文件。

尝试将导出的Jar放在与文本文件相同的目录中。

我的例子:

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JComboBox;
import javax.swing.JOptionPane;

public class test {

    public static void main(String[] args) throws FileNotFoundException, IOException{
        JComboBox box = new JComboBox();
        fillComboBox(box, "C:\\path\\test.txt");
        JOptionPane.showMessageDialog(null, box);

    }

    private static void fillComboBox(JComboBox combobox, String filepath) throws FileNotFoundException, IOException {

        BufferedReader input = new BufferedReader(new FileReader(filepath));
        List<String> strings = new ArrayList<String>();
        try {
            String line = null;
            while ((line = input.readLine()) != null) {
                strings.add(line);
            }
        } catch (FileNotFoundException e) {
            System.err.println("Error, file " + filepath + " didn't exist.");
        } finally {
            input.close();
        }

        String[] lineArray = strings.toArray(new String[] {});

        for (int i = 0; i < lineArray.length - 1; i++) {
            combobox.addItem(lineArray[i]);
        }

    }
}