通常回答只有两种,一种是制作一个可执行的JAR文件包,然后就可以像。chm文档一样双击运行了;而另一种是使用JET来进行编译。但是JET是要用钱买的,而且据说JET也不是能把所有的Java程序都编译成执行文件,性能也要打些折扣。所以,使用制作可执行JAR文件包的方法就是最佳选择了,何况它还能保持Java的跨平台特性制作一个可执行的JAR文件包来发布你的程序是JAR文件包最典型的用法。

Java程序是由若干个。class文件组成的。这些。class文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给CLASSPATH环境变量或者java命令的-cp参数;运行时还要到控制台下去使用java命令来运行,如果需要直接双击运行必须写Windows的批处理文件(。

bat)或者Linux的Shell程序。因此,许多人说,Java是一种方便开发者苦了用户的程序设计语言。其实不然,如果开发者能够制作一个可执行的JAR文件包交给用户,那么用户使用起来就方便了。在Windows下安装JRE(JavaRuntimeEnvironment)的时候,安装文件会将。

jar文件映射给javaw。exe打开。那么,对于一个可执行的JAR文件包,用户只需要双击它就可以运行程序了,和阅读。chm文档一样方便(。chm文档默认是由hh。exe打开的)。那么,现在的关键,就是如何来创建这个可执行的JAR文件包。创建可执行的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:可执行主类全名(包含包名)例如,假设上例中的 ass是属于test包的,而且是可执行的类(定义了publicstaticvoidmain(String[])方法),那么这个manifest。

mf可以编辑如下:Main- 这个manifest。mf可以放在任何位置,也可以是其它的文件名,只需要有Main- 一行,且该行以一个回车符结束即可。创建了manifest。mf文件之后,我们的目录结构变为:==|--test|`-- ass`--manifest。

mf这时候,需要到test目录的上级目录中去使用jar命令来创建JAR文件包。也就是在目录树中使用“==”表示的那个目录中,使用如下命令:jarcvfmtest。jarmanifest。mftest之后在“==”目录中创建了test。jar,这个test。

jar就是执行的JAR文件包。运行时只需要使用java-jartest。jar命令即可。需要注意的是,创建的JAR文件包中需要包含完整的、与Java程序的包结构对应的目录结构,就像上例一样。而Main-Class指定的类,也必须是完整的、包含包路径的类名,如上例的test。

Test;而且在没有打成JAR文件包之前可以使用java来运行这个类,即在上例中javatest。Test是可以正确运行的(当然要在CLASSPATH正确的情况下)。