我需要在我的jar中添加一个exel文件,以便它是可移植的。我知道答案是使用getClass().getResource..。但我不知道如何使用这段代码。
我的类文件在src文件夹中有exel文件,它在netbeans中工作,但当我在另一台PC上打开jar文件时就不行了。我被发现了异常
下面是我使用的代码:
public class WindageLogic {
//....
public void GetValues() throws Exception
{
File exel=new File("src/Calculator/table1.xls");
Workbook w1; //reads from file
//reads from file
w1 = Workbook.getWorkbook(exel);
有人能给我实现的代码来让我从jar应用程序中访问这个文件吗?我整个周末都在互联网上查找东西,但我不知道如何使用这些getresource技术。
非常感谢
发布于 2011-08-14 07:38:32
如果excel文件是一个资源,那么您不能使用File
来操作它,而是使用资源,而且我相信它是只读的--您确定这是您想要做的吗?您可以加载一个命令行字符串,该命令行字符串指示程序从何处开始查找该文件,或者创建一个属性文件,该文件指示从何处首先查看该文件。
编辑1
如果您正在使用JExcel,那么您可以调用Workbook.getWorkbook(java.io.InputStream is)
并通过类的getResourceAsStream(...)
方法将资源作为流获取。
例如,
public void GetValues() throws Exception {
Workbook w1; //reads from file
w1 = Workbook.getWorkbook(WindageLogic.class.
getResourceAsStream("/Calculator/table1.xls") );
//...
发布于 2011-08-14 07:39:10
为了使getClass().getResource()方法工作,资源应该在应用程序的类路径中可用(要么打包在一个jar文件中,要么简单地放在包含在类路径中的磁盘上的一个文件夹中)。
根据您正在使用的IDE或代码构建工具,有多种方法可以确保它已经完成。
最简单的方法是将src文件夹放到运行类路径java -classpath src:%CLASSPATH% <your.class.name>
中。
https://stackoverflow.com/questions/7057752
复制相似问题