使不能运行的JAR文件可以操纵java -jar运行[Java编程]
本文“使不能运行的JAR文件可以操纵java -jar运行[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
择要
本文展示若何将不可运行的JAR变成可运行的,并且不用直接操作manifest文件.你将学会开辟一个短小的程序使得任何JAR文件都可以利用java -jar号令大概通过在像Windows上双击而运行.
你可以将一个利用的全部类和资源打包到一个JAR文件中.实际上,那就是jar文件的一个目的.别的一个目的是让用户可以非常简单的履行存储在JAR文件中的利用,那么为什么当他们可以成为一等公民而和本机可执路程序平等的时刻,我们为什么要让他们只承当包的功效而成为java世界中的二等公民呢?
要履行一个jar文件,你可以利用java号令的-jar选项.比方你有一个可运行的文件名为myjar.jar的JAR文件,因为它是可运行的,你可以像这样履行它:java -jar myjar.jar
别的,当JRE安装在像Windows这样的操作系统上时,将jar文件和JVM关联后你便可以双击他们运行利用了.这些JAR必须是可运行的.
问题是:你若何让一个JAR是可运行的?
manifest文件和Main-Class条目
在大部份JAR文件中,META-INF目录下会有一个MANIFEST.MF文件,在那个文件中有一个特别的条目Main-Class,它奉告java -jar号令去履行那么类.
问题是你必须自己得当的将这个特别条目加到manifest文件中:它必须位于特定的位置并且必须符合特定的格局,但是有些人不喜好编辑配置文件.
让API帮你做
从Java 1.2开始惹人的java.util.jar包可以让你操作jar文件(注意:它成立在java.util.zip包的底子上).更切当的说法是,java.util.jar可以让你通过Manifest类非常简单的操作那个特别的manifest文件.
让我们编写一个程序利用那个API.首先这个程序必须知道三件事情:
1. 我们但愿可以履行的JAR
2. 我们但愿履行的主类(这个类必须存在于JAR内)
3. 新的JAR文件的文件名,因为我们不该该简单的覆盖那些文件
编写程序
上面的列表将会构成我们的程序的参数,基于这一点,让我们为这个利用挑选一个符合的名字.MakeJarRunnable听起来若何?
查抄main的参数
假定我们的main进口是一个尺度的main(String[])办法,我们首先应当查抄程序的参数:
if (args.length != 3) {
System.out.println("Usage: MakeJarRunnable "
+ "<jar file> <Main-Class> <output>");
System.exit(0);
}
请注意参数列表是若何被注释的,因为这关于背面的代码是非常重要的.参数的次序和内容并非硬性设置的,但是假如你改变它们也要记得得当的改正其他的代码.
拜候JAR和它的manifest文件
首先我们必须成立一些知道JAR和manifest文件的对象:
//Create the JarInputStream object, and get its manifest
JarInputStream jarIn = new JarInputStream(new FileInputStream(args[0]));
Manifest manifest = jarIn.getManifest();
if (manifest == null) {
//This will happen if no manifest exists
manifest = new Manifest();
}
以上是“使不能运行的JAR文件可以操纵java -jar运行[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |