zoukankan      html  css  js  c++  java
  • java生成可执行jar

    java生成可执行jar 非常简单

    使用myeclipse直接export-->jar导出 选择main方法的类就ok

    但是如果jar引用了其他的jar 必须在Manifest文件中引入jar

    例如:

    Manifest-Version: 1.0
    Main-Class: Main
    Class-Path: axis/activation.jar axis/axis.jar axis/axis-ant.jar axis/commons-discovery-0.2.jar
     axis/commons-logging-1.0.4.jar axis/commons-logging-1.1.jar axis/commons-logging-api-1.1.jar
     axis/jaxrpc.jar axis/log4j-1.2.8.jar axis/mail.jar aixs/saaj.jar axis/serializer-2.7.1.jar
     aixs/wsdl4j-1.5.1.jar axis/xalan-2.7.1.jar aixs/xercesImpl-2.9.1.jar
     axis/xercesImpl.jar aixs/xercesSamples.jar axis/xml-apis-1.3.03.jar
     aixs/xml-apis.jar axis/xmlParserAPIs.jar axis/xmlsec-1.4.4.jar
     axis/xmlsecSamples-1.4.4.jar axis/xmlsecTests-1.4.4.jar axis/quartz-all-1.7.3.jar

    jar包太多全部放在一行 会导致错误

    必须换行 换行的行 开头和结尾必须要有一个空格

     axis/commons-logging-1.0.4.jar 的意思是 必须在可执行jar 同一目录下的axis子目录下的commons-logging-1.0.4.jar

    或者使用jdk自带的jar命令 jre是没有jar.exe  如果是使用jre 那就从jdk中拷贝一个jar.exe到bin目录 同时复制一份 bin下面的server目录 修改为

    client 就行了 在cmd命令中键入 jar /?出现jar的帮助

    可以先整理出一份目录 比如是c:\yjj下面是所有的类结构文件 即包结构和报下面的类  同时建一个 Manifest.mf文件

    比如内容是 :

    Manifest-Version: 1.0
    Main-Class: Main

    引入jar参考上面

    利用cmd命令 进入该目录 cd  c:/yjj

    比如jdk在E:\java\jre\bin\目录下

    使用命令 E:\java\jre\bin\jar cvfm yjj.jar manifest.mf -c ./

    ./ 表示打包当前目录下的所有文件 如果你不到yjj目录下而是到c盘的话 把./改成 c:/yjj jar包中多了一个yjj目录

    所以必须到要打包的目录中才能执行这个命令

    执行的话 cmd命令下 java -jar 可执行.jar

    如果jar包数量太多 觉得Class-Path太多 可以使用-Djava.ext.dirs 参数 jdk6+可用

    例如

    java -Djava.ext.dirs=引用的lib库的路径;可执行jar的路径 -jar 可执行jar路径\可执行jar名称.jar
    java -Djava.ext.dirs=E:\workspace\posgui\lib;E:\workspace\posgui -jar E:\workspace\posgui\pos.jar

    如果可执行jar的路径 不放在里面 会导致主方法 找不到可执行jar中所有其他引用的类

    即使使用-cp和-classpath都不行

    例如 主方法是在com.auto.frame.AutoFrame中 在main中引用了ABC类 ABC类也在pos。jar中

    使用如下方式都会失败

    1。java -Djava.ext.dirs=E:\workspace\posgui\lib -jar E:\workspace\posgui\pos.jar
    2.    java -Djava.ext.dirs=E:\workspace\posgui\lib -jar -classpath E:\workspace\posgui  E:\workspace\posgui\pos.jar

    3.    java -Djava.ext.dirs=E:\workspace\posgui\lib -jar -cp E:\workspace\posgui  E:\workspace\posgui\pos.jar

    pos.jar的manifest.mf文件只需要 主方法即可例如

    Manifest-Version: 1.0
    Main-Class: com.auto.frame.AutoFrame

  • 相关阅读:
    智能实验室-杀马(Defendio) 4.12.0.800
    智能实验室-结构化存储浏览器(SSExplorer) 1.7.0.170
    智能实验室-全能优化(Guardio) 4.94.0.830
    智能实验室-全能优化(Guardio) 4.9.0.790
    IT餐馆—第二十二回 控件
    当DiscuzNT遇上了Loadrunner(中)
    在Discuz!NT中进行缓存分层(本地缓存+memcached)
    介绍三个Silverlight 在线编辑器控件
    玩玩负载均衡在window与linux下配置nginx
    IT餐馆—第十八回 祭奠
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331484.html
Copyright © 2011-2022 走看看