gpt4 book ai didi

java - 将 .JAR 和动态加载资源打包到一个 .EXE 中

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

问题:
我有一个 .jar 文件和 2 个包含 Assets 的文件夹。我希望将它们全部打包到一个 .exe 文件中。我已经尝试过 Launch4j,但这不允许将 Assets 添加到 .exe 中。

问题2:
我使用 assets/audio/ + assetName 定义程序中的文件路径。是否需要按照您的方法进行更改?如果需要如何更改?

此问题已针对其他语言提出 herehere但这些问题的答案没有帮助。

最佳答案

您可以将资源放入 jar 中。

例如,如果您有一个名为 Test.txt 的文件并且想要打印将文件内容发送到控制台

“Test.txt”文件被放入与根包同级的名为 asset 的包中

The project structure will look like this

package net.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test {
public static void main(String[]args) {
BufferedReader br = null;

try {
InputStream is = Test.class.getResourceAsStream("/assets/Test.txt");

if(is != null) {
br = new BufferedReader(new InputStreamReader(is));

//Print the content of Test.txt
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
} else {
//Resource not found
System.out.println("Resource unavailable!");
}

} catch (IOException e) {
e.printStackTrace(); //Log IO Error
} finally {
if(br != null) {
try {
br.close();
} catch (IOException e) {}
}
}
}
}

您无法像通常使用 File 对象访问外部文件那样访问 .jar 资源。

如果您的资源已放入 jar 中,则可以使用 Launch4j(或替代方案)来获取 .exe。

关于java - 将 .JAR 和动态加载资源打包到一个 .EXE 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216375/

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