问题:
我有一个.jar文件和2个包含资产的文件夹。我希望他们都被打包成一个.exe文件。我已经尝试过Launch4j,但这不允许将资源添加到.exe。
问题2:
我使用“assets / audio /”+ assetName在程序中定义文件路径。是否需要通过遵循您的方法来改变,如果是这样的话?如果您不知道答案,请不要回答。
答案 0 :(得分:1)
您可以将资源放入jar中。
例如,如果您有一个名为Test.txt的文件,并且您想要打印 文件内容到控制台
" Test.txt" file放在一个名为assets的包中,该包位于根包的同一级别
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。