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