1. 怎么用linux命令获取某文件夹下的所有jar文件并将jar文件中类名相同的.class文件挑出,放在一个文件夹里
find /目录1 -name '*.jar' -exec jar -xvf {} /目录2 \;
find /目录2/ -name '*.class' -exec cp {} /目录3 \;
目录1是要查找的目录,目录2是临时存放解压文件的目录,目录3是要放文件的目录,之后如果不要目录2的再rm -rf /目录2 就搞定了
2. 如何在linux下执行jar文件
linux下执行jar文件方法:命令行下进入文件目录,执行java-jarfile.jar即可,也可在桌面创建一个启动器,在命令栏填写相关的命令:java-jar/file路径/file.jar,这样在桌面双击即可打开该jar文件x0dx0ax0dx0a创建可执行的JAR文件包详解:JAR文件就是JavaArchiveFile,顾名思意,它的应用是与Java息息相关的,是Java的一种文档格式。JAR文件非常类似ZIP文件--准确的说,它就是ZIP文件,所以叫它文件包。JAR文件与ZIP文件唯一的区别就是在JAR文件的内容中,包含了一个META-INF/MANIFEST.MF文件,这个文件是在生成JAR文件的时候自动创建的.举个例子,如果我们具有如下目录结构的一些文件:x0dx0a==x0dx0a`--testx0dx0a`--Test.classx0dx0a把它压缩成ZIP文件test.zip,则这个ZIP文件的内部目录结构为:x0dx0atest.zipx0dx0a`--testx0dx0a`--Test.classx0dx0a如果我们使用JDK的jar命令把它打成JAR文件包test.jar,则这个JAR文件的内部目录结构为:x0dx0atest.jarx0dx0a|--META-INFx0dx0a|`--MANIFEST.MFx0dx0a`--testx0dx0a`--Test.classx0dx0a创建可执行的JAR文件包,需要使用带cvfm参数的jar命令,同样以上述test目录为例,命令如下:jarcvfmtest.jarmanifest.mftest,这里test.jar和manifest.mf两个文件,分别是对应的参数f和m,其重头戏在manifest.mf。因为要创建可执行的JAR文件包,光靠指定一个manifest.mf文件是不够的,因为MANIFEST是JAR文件包的特征,可执行的JAR文件包和不可执行的JAR文件包都包含MANIFEST。关键在于可执行JAR文件包的MANIFEST,其内容包含了Main-Class一项。这在MANIFEST中书写格式如下:Main-Class:可执行主类全名(包含包名)x0dx0a例如,假设上例中的Test.class是属于test包的,而且是可执行的类(定义了publicstaticvoidmain(String[])方法),那么这个manifest.mf可以编辑如下:Main-Class:test.Test,这个manifest.mf可以放在任何位置,也可以是其它的文件名,只需要有Main-Class:test.Test一行,且该行以一个回车符结束即可。创建了manifest.mf文件之后,我们的目录结构变为:x0dx0a==x0dx0a|--testx0dx0a|`--Test.classx0dx0a`--manifest.mfx0dx0a这时候,需要到test目录的上级目录中去使用jar命令来创建JAR文件包。也就是在目录树中使用==表示的那个目录中,使用如下命令:jarcvfmtest.jarmanifest.mftestx0dx0a之后在==目录中创建了test.jar,test.jar就是执行的JAR文件包。运行时只需要使用java-jartest.jar命令即可。x0dx0a需要注意的是,创建的JAR文件包中需包含完整的、与Java程序包结构对应的目录结构。而Main-Class指定的类,也必须是完整的、包含包路径的类名,如上例的test.Test;而且在没有打成JAR文件包之前可以使用java来运行这个类,即在上例中javatest.Test是可以正确运行的(当然要在CLASSPATH正确的情况下)。