Java .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");

带有items的文本文件位于我的netbeans项目根目录中。当从netbeans运行应用程序时,它可以完美地工作。但是当我构建项目并创建.jar文件时。它不能运行。我试着从命令行运行它。这是我得到的。

. io .FileNotFoundException: items(System cannot find the file.)

如何处理?我什么也没找到。我不知道问题在哪里,因为它在netbeans中工作得很好。非常感谢您的帮助。

.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]);
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新