所以我正在尝试使用BufferedImages,因为它们更容易使用,并且似乎加载它们有点棘手。我认为您需要绝对的路径来加载它们,并且我尝试仅执行src / Package.image.png,但是当我导出到可运行的jar时,它不起作用。这段代码可以在eclipse中运行,但是由于某些原因,当我将其导出为.jar时,它无法正常工作。
package MainGame;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
public class GraphicsPath {
public static String getGraphicsPath(){
String path = null;
PrintWriter writer = null;
try {
writer = new PrintWriter("text.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
path = GraphicsPath.class.getProtectionDomain().getCodeSource().getLocation().getPath();
System.out.println(path);
writer.println("orignal path " + path);
//FOR LINUX
String[] splited = path.split("/");
//FOR WINDOWS
//String[] splited = path.split("\");
writer.println(path);
path = path.replace("%20", " ");
path += "MainGame/";
writer.println(path);
writer.close();
System.out.println(path);
return path;
}
}
这是text.txt导出到jar时的内容
orignal path ./
./
./MainGame/
这是仍在Java项目中的text.txt的内容
orignal path /home/mini/workspace/Pokemon%20Game/bin/
/home/mini/workspace/Pokemon%20Game/bin/
/home/mini/workspace/Pokemon Game/bin/MainGame/
如果我对您的理解正确,那么您有一个需要读取的package.image.png文件,该文件位于.jar文件中。
我以前遇到过此问题,并且我认为您无法使用路径来定位此文件。在我的一个项目中,我实际上使用了URL来指定文件的位置。我会给你一个例子,说明我做了什么
所以在我的jar文件中,有一个images文件夹。说我有/images/x.png
我做这个
URL u = this.getClass().getResource( "/images/x.png" );
a=ImageIcon(u);
我用它来创建imageIcon,但是我认为您可以检查如何使用URL读取文件。
编辑:我只是试图读取文件,它的工作原理。
URL test =Class.class.getResource( "/docs/test.txt" );
BufferedReader in = new BufferedReader(new InputStreamReader(test.openStream()));
因此,您可以将InputStreamReader与其他内容包装在一起以获取图像
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句