我刚刚发布了这个问题:How to distribute my Java program so that it is runnable by double-clicking a single file?,虽然我让runnable jar正常工作,但由于我的程序找不到我想要使用的资源,例如图像和SQLite数据库文件,许多东西都不能按我想要的方式工作。
在我的文件系统中,img文件夹中有几个.png图像,项目根文件夹中有一个名为test.db的数据库
当我的项目在Eclipse中时,我使用如下命令访问我的图像:
BufferedImage bufImg = ImageIO.read(new File("img/anImage.png"))我使用以下命令连接到我的SQLite数据库:
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:test.db");现在,当我双击新创建的runnable-jar时,找不到资源。我想知道我应该如何访问它们,以及当我的程序不在IDE中时如何让它工作。
我还想知道如何才能看到例外情况(如果可能的话)。因为现在,一些页面保持灰色是因为它们没有加载,因为(我猜)一些资源找不到,但我不知道是只是数据库造成了问题,还是图像也有问题。
非常感谢和抱歉在这么短的时间内问了两个相关的问题!
发布于 2011-08-22 10:03:58
Jar中没有Files,只有资源,所以大多数使用文件的方法也会接受资源。
例如ImageIO.read(...)具有接受URL的重载和接受InputStream的重载。所以试一试
BufferedImage bufImg = ImageIO.read(MyClass.class.
getResourceAsStream("img/anImage.png"));只需确保使用相对于类文件位置和实际类名的路径,即this.getClass()
https://stackoverflow.com/questions/7142479
复制相似问题