gpt4 book ai didi

java - 编译Java文件,其中包含外部文件。 (CHM)

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

我正在用java制作一个1文件程序,并且我有一个.chm文件,当用户询问如何使用该程序时我想调用该文件。我不想让该文件位于 .jar 文件之外。

也许我要问的是不可能的,我对编译的唯一了解是,如果我点击“清理并构建”按钮,它会从我的 中生成一个 .jar 文件。 java 文件。有办法做到这一点吗?

PS:我使用 NetBeans 来创建 java 程序。

最佳答案

您可以将任何文件包含在 jar 中(它是一个 zip 文件)。那么你必须使用getResource()获取对 jar 中嵌入文件的访问权限。这将返回 URL您可以通过调用 openStream() 来获取 InputStream并从中读取,可能将其提取到硬盘驱动器以供显示等。

用途是将此类文件放入“src”目录内的“resource”或“res”文件夹中。这是它在我的 Eclipse 中的样子:

Test project with resources

然后我通过以下方式访问我的图像:

URL uImg = getClass().getResource("/res/16/Actions-edit-delete-icon-16.png");
InputStream is = uImg.openStream();
// Read the content from 'is' e.g. to extract it somewhere
is.close();

编辑:作为示例,将文件 "TJ.chm" 从 jar 的 "res" 目录提取到文件 "/tmp/TJ.chm” 你会喜欢:

// Add all necessary try/catch
InputStream is = ucmh.openStream();
OutputStream os = new BufferedOutputStream(new FileOutputStream("/tmp/TJ.chm"));
int len = 0;
byte[] buffer = new byte[8192]; // Or whichever size you prefer
while ((len = is.read(buffer)) > -1)
os.write(buffer, 0, len);
os.close();
is.close();

关于java - 编译Java文件,其中包含外部文件。 (CHM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513295/

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