【发布时间】:2010-09-10 10:27:27
【问题描述】:
我已经更新了我的 ant build.xml 文件以包含一个新文件和一个新文件夹。创建 .jar 后,我通过“解压缩\提取”检查它们是否存在于 jar 中,它们就在那里。
但在执行 .jar 时,文件夹或文件都不会被提取。
我错过了一步吗?
【问题讨论】:
我已经更新了我的 ant build.xml 文件以包含一个新文件和一个新文件夹。创建 .jar 后,我通过“解压缩\提取”检查它们是否存在于 jar 中,它们就在那里。
但在执行 .jar 时,文件夹或文件都不会被提取。
我错过了一步吗?
【问题讨论】:
您的应用程序应该能够直接从 jar 中使用该文件,无需提取它。还是你的意思是别的?
【讨论】:
您是否正在做一些特定的事情来提取 jar 文件?我问是因为执行它们时通常不会提取 jar 文件。
如果您运行“java -jar myJar.jar”或“java -cp myJar.jar com.example.MyMainClass”,则不会提取引用的 jar 文件。 Java 将直接从 jar 文件中加载您的类和资源,而无需提取它。
【讨论】:
查看getResourceAsStream。它将使您不必从 jar 文件中提取文件。除非那是你的目标。
【讨论】:
如果您使用One-JAR 封装您的应用程序,您可以在清单文件中指定一个属性来提取您想要的文件(请参阅One-Jar-Expand 清单属性)。
作为奖励,您还可以将任何依赖库与您的代码一起包装,创建一个可分发的 jar。
【讨论】: