我正在寻找一堆罐子里的.class文件。
jar tf abc.jar
适用于一个文件。我试过了
find -name "*.jar" | xargs jar tf
什么都不打印。我能想到的唯一解决方案是全部解压缩,然后搜索。有没有更好的办法?我在LUnix上。
编辑 :扫描多个jar时,将jar文件名与类一起打印很有用。此方法效果很好:
find . | grep jar$ | while read fname; do jar tf $fname | grep SchemaBuilder && echo $fname; done
产生的样本输出:
1572 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$1.class
1718 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$2.class
42607 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder.class
./XmlSchema-1.3.2.jar
1572 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$1.class
1718 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$2.class
42607 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder.class
./XmlSchema.jar
您需要传递-n 1
给,xargs
以强制它为jar
从中获取的每个文件名运行单独的命令find
:
find -name "*.jar" | xargs -n 1 jar tf
否则xargs
,命令行类似于jar tf file1.jar file2.jar...
,其含义与预期的不同。
一种有用的调试技术是echo
在要运行的命令之前粘贴xargs
:
find -name "*.jar" | xargs echo jar tf
这会打印出完整的jar
命令,而不是执行它,这样您就可以看到它出了什么问题。
我尝试使用以下命令编译2个jar文件和4个java源文件: javac-classpath junit-4.12.jar jar2.jar 1.java 2.java 3.java 4.java 但是,我得到以下错误:
问题内容: 我有这段代码,它从目录中读取所有文件。 效果很好。它使用目录“ text_directory”中所有以“ .txt”结尾的文件填充数组。 如何在 JAR文件中以类似方式读取目录的内容? 因此,我真正想要做的是列出我的JAR文件中的所有图像,这样我就可以加载它们: (之所以有效,是因为“ CompanyLogo”是“硬编码的”,但是JAR文件中的图像数量可以是10到200个可变长度。)
问题内容: 这是我当前的代码: 这很好。但是,我想列出其他图像类型,例如.png,gif等。 请给我一些帮助,以修改上面的代码以使其正常工作。我尝试了以下方法,但均未成功: 和其他变化… 问题答案:
我试图构建我的项目的JRE捆绑exe文件,这是一个游戏,在本教程的帮助下使用,它创建了文件,但每当我运行这个文件时,它会给出两条错误消息: 出现JNI错误,请检查您的安装。 Java异常发生(JVM启动器)。 附言:我的项目在文件夹中包含额外的JAR文件()。
问题内容: 我正在用JAVA制作游戏,我想在jar中的某个目录中列出文件列表,这样我就可以确保列出要在游戏中使用的这些类的列表。 例如说我的罐子里有一个目录 我想 使用jar中另一个类的Java代码 获取该目录中所有.class文件的列表。 这样做的最佳代码是什么? 问题答案: 旧的Java1.4代码,但这会让您有一个主意:
问题内容: 我需要使用当前Maven构建中的“主” applicationContext-a.xml创建一个ApplicationContext。另一个连接来自另一个Maven构建的类,并在Maven依赖关系包含的jar中预设。 这里的想法: 这应该从Classpath加载applicationContext-a.xml,因为它位于同一Project中。 这可行。 然后应该从依赖项jar中加载ap