【问题标题】:Cannot extract jar file in java application packaged for windows无法在为 Windows 打包的 java 应用程序中提取 jar 文件
【发布时间】:2016-03-10 16:23:09
【问题描述】:

我的程序是在 Netbeans 8.0.2 中创建的。该程序应该在安装后创建一个(数据库)文件夹,并从其库中提取一个(数据库)jar 文件的内容。该文件夹创建得很好,但 jar 文件的内容没有被提取。 如何让 jar 文件的提取工作? 注意:当我在 Netbeans 中运行程序时,一切正常。

示例代码:

    String appHomeDir = new java.io.File(".").getCanonicalPath();
    String destDir = appHomeDir + "/database";
    File folder = new File(destDir);
    if (!folder.exists()) {
    folder.mkdir();
    String current = new java.io.File(".").getCanonicalPath();
    String jarFile = current + "\\app\\lib\\database.jar";
    java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile);
    java.util.Enumeration enumEntries = jar.entries();
    while (enumEntries.hasMoreElements()) {
    java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries.nextElement();
    java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName());
    if (file.isDirectory()) { // if its a directory, create it
    f.mkdir();
    continue;
    }
    java.io.InputStream is = jar.getInputStream(file); // get the input stream
    java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
    while (is.available() > 0) {  // write contents of 'is' to 'fos'
    fos.write(is.read());
    }
    fos.close();
    is.close();
    }
    }

因此“database”目录被创建,但“database.jar”的内容没有被提取。

【问题讨论】:

  • 注意直接工作,你从哪里运行应用程序?
  • @omer727,我不明白你的问题。你的意思是应用程序的工作目录吗?如果是这样,它从以下位置运行:c:\users\someuser\AppData\Local\MySoftware。我正在使用 Windows 7。

标签: java netbeans jar packaging extraction


【解决方案1】:

问题已解决:我将“/app/lib/database.jar”替换为“/lib/database.jar”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 2013-08-22
    • 2017-04-20
    • 2012-09-12
    • 2016-11-08
    • 2020-02-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多