繁体   English   中英

如何将资源添加到 jar 文件中

[英]How to add resources into jar file

我需要在我的 jar 中添加一个 exel 文件,这样它就可以移植了。 我知道答案是使用 getClass().getResource.... 但我不知道如何 go 使用此代码。

我在 src 文件夹中有 exel 文件和我的 class 文件,它在 netbeans 中有效,但当我在另一台 PC 上打开 jar 文件时无效。 我得到 filenotfound 异常

这是我使用的代码:

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 技术。

多谢

如果您的 excel 文件是资源,那么您不能使用File来操作它,而是使用资源,我相信它是只读的——您确定这是您想要做的吗? 您可以改为加载一个命令行字符串,告诉程序从哪里开始查找文件,或者创建一个属性文件来告诉首先查找的位置。

编辑 1
如果您使用的是 JExcel,那么您可以调用Workbook.getWorkbook(java.io.InputStream is)并通过类的getResourceAsStream(...)方法将您的资源作为 Stream 获取。

例如,

  public void GetValues() throws Exception   {
     Workbook w1; //reads from file
     w1 = Workbook.getWorkbook(WindageLogic.class.
          getResourceAsStream("/Calculator/table1.xls") );
     //...

为了使 getClass().getResource() 方法工作,资源应该在应用程序的类路径中可用(或者打包在 jar 文件之一中,或者只是在包含在类路径中的磁盘上的文件夹中)。

根据您使用的 IDE 或代码构建工具,有多种方法可以确保完成。

最简单的方法是将src文件夹放在运行类路径java -classpath src:%CLASSPATH% <your.class.name>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM