gpt4 book ai didi

java - 添加要在 Jar 中构建的文本文件和图像 - Netbeans

转载 作者:行者123 更新时间:2023-12-01 12:54:52 25 4
gpt4 key购买 nike

我在构建 Jar 时确实遇到了太多问题。问题出在 Netbeans 中,它工作正常,但如果我尝试从/dest 文件夹运行 .jar 文件,它不会调用其他文本文件和图像。我尝试了各种解决方案但无法真正解决它。这是我存储 .java 文件的目录。 src/RX/example.java 其中 RX 是包名称。我将所有图像和文本文件插入同一目录中,并像这样调用。

JButton btnStart = new JButton(new ImageIcon("src/RX/start1.png")); //Set Image for Button

现在从文本文件中读取:

Reader reader = null; 
JTextArea jtaUser= new JTextArea();
try {
reader = new FileReader(new File("src/RX/rxUser.txt"));
jtaUser.read(reader, "");
} catch (Exception exp) {
} finally {
try {
reader.close();
} catch (Exception exp) {
}
}

正如我之前所说,问题是如果我从 Netbeans 运行一切都工作正常,但文本文件和图像不包含在 .jar 文件中。因此,当我打开 .jar 时,该按钮看起来是空的,并且在读取文件时它会卡住。

我需要一个与我上面所做的相同编码的答案。因此,请告诉我或向我展示如何设置图像并读取文本文件,而不是提供其他答案的链接。我非常感谢您对这个问题的回答。谢谢。

最佳答案

当您将文件读取为 File 对象时,程序将尝试从本地文件系统读取。如果您打算使用文件作为资源,那么您应该这样读取它们。

您可以从 getClass().GetResourceAsStream() 获取 InputStream,然后将该 InputStream 传递给 InputStreamReader code> 用于 read() 方法。所以在你的情况下,你会使用

InputStream is = getClass().getResourceAsStream("/RX/rxUsers.txt");
InputStreamReader reader = new InputStreamReader(is);
textArea.read(reader, ..);

我使用的路径是由类路径决定的。由于 RX dir 是 src 的直接子级,因此它将位于类路径的根目录中。要从调用类(使用 getClass())到达类路径的根目录,您需要在路径前面添加额外的 /

要读取图像,您可以使用返回 InputStreamgetResourceAsStream() ,或使用返回 URL 的 getResource() 。您可以将 URL 传递给 ImageIcon(URL)ImageIO.read(URL),后者返回 Image 对象。根据您的需要选择哪一个。示例:

URL url = getClass().getResource("/RX/start1.png"); // you will need to 
ImageIcon icon = new ImageIcon(url); // handle exception

关于java - 添加要在 Jar 中构建的文本文件和图像 - Netbeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23979048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com