`
kakukemeit
  • 浏览: 31580 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

java -jar classpath心得

 
阅读更多

java -jar classpath心得 

http://sddhn.blog.163.com/blog/static/128187792011102454152790/

 

如果单个jar文件,没有引用到其他jar文件,而且指定了Main-Class,可以这样运行:
java -jar hello.jar
如果执行的jar文件引用了其他jar文件,该怎么办?
这里hello.jar里面用到Log4j的Log
java -cp log4j-1.2.14.jar -jar hello.jar
这个想当然可以执行,实际上执行会出现ClassNotFoundException的
因为使用了 -jar 选项,环境变量 CLASSPATH 和在命令行中指定的所有类路径都被 JVM 所忽略

正确运行方式如下:
1、
java -cp lib\log4j-1.2.14.jar;hello.jar com.dhn.Hello (com.dhn.Hello为主类)
在windows下多个jar之间以分号(;)隔开,最后还需要指定运行jar文件中的完整的主类名
2、
java -jar hello.jar
但是需要修改hello.jar中的MANIFEST.MF,通过MANIFEST.MF中的Class-Path 来指定运行时需要用到的其他jar,
其他jar可以是当前路径也可以是当前路径下的子目录。多个jar文件之间以空格隔开
以下面的MANIFEST.MF文件为例
Manifest-Version: 1.0
Main-Class: com.ibm.portalnews.entrance.Main
Class-Path: lib\commons-collections-3.2.jar lib\commons-configuration-1.5.jar lib\commons-lang-2.3.jar lib\commons-logging.jar lib\dom4j-1.6.1.jar lib\jaxen-1.1-beta-7.jar lib\jdom.jar lib\log4j-1.2.14.jar

其中Manifest-Version表示版本号,一般由IDE工具(如eclipse)自动生成
Main-Class 是jar文件的主类,程序的入口
Class-Path 指定需要的jar,多个jar必须要在一行上,多个jar之间以空格隔开,如果引用的jar在当前目录的子目录下,windows下使用\来分割,linux下用/分割
文件的冒号后面必须要空一个空格,否则会出错
文件的最后一行必须是一个回车换行符,否则也会出错

分享到:
评论

相关推荐

    mysql-connector-java-commercial-5.1.30-bin.jar

    CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\servlet-api.jar;%JAVA_HOME%\lib\mysql-connector-java-5.1.30-bin-g.jar;C:\...

    java-7-openjdk-amd64

    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH $ java -version java version "1.7.0_121" OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-...

    mysql-connector-java-8.0.21.jar

    more jars for Simple Logging Facade for Java (SLF4J) to your CLASSPATH. - To use the X DevAPI features in Connector/J, you also need the external library protobuf-java, which you can download ...

    java-boot-classpath-detector-1.9.jar

    查询 java home 以找到其引导类路径。 org.codehaus.mojo/java-boot-classpath-detector/1.9/java-boot-classpath-detector-1.9.jar

    Java 实例 - classpath使用实例-classpath使用教程-手把手教程.zip

    Java 实例 - classpath使用实例-classpath使用教程-手把手教程.zip

    mchange-commons-java-0.2.3.4.jar.zip

    java jar包,亲测试可用 ...把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。

    Spring Boot 的java -jar命令启动原理详解

    主要介绍了Spring Boot 的java -jar命令启动原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    MySQL5.5及其驱动连接jar包mysql-connector-java-5.1.19

    首先,安装数据库,然后将mysql-connector-java-5.1.21-bin.jar文件拷贝到一个目录下,任意即可,放在MySQL下更好,然后到classpath配置环境,将 此文件追加到后面。最后,在工程的webContent的web-Inf下找到lib...

    Shell脚本通过Java class文件启停Java程序源码(脚本及源码)

    在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...

    java-boot-classpath-detector-1.14.jar

    查询 java home 以找到其引导类路径。 org.codehaus.mojo/java-boot-classpath-detector/1.14/java-boot-classpath-detector-1.14.jar

    mysql-connector-java-5.1.9.jar.zip

    java jar包,亲测试可用 ...把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。

    java-boot-classpath-detector-1.8.jar

    查询 java home 以找到其引导类路径。 org.codehaus.mojo/java-boot-classpath-detector/1.8/java-boot-classpath-detector-1.8.jar

    addressing-1.6.0-classpath-module.jar

    标签:addressing-1.6.0-classpath-module.jar,addressing,1.6.0,classpath,module,jar包下载,依赖包

    addressing-1.6.2-classpath-module.jar

    标签:addressing-1.6.2-classpath-module.jar,addressing,1.6.2,classpath,module,jar包下载,依赖包

    addressing-1.5.6-classpath-module.jar

    标签:addressing-1.5.6-classpath-module.jar,addressing,1.5.6,classpath,module,jar包下载,依赖包

    Build Fat-JAR

    使用: 安装后,可以在 [Export] 向导里找到 "Build Fat-JAR",然后根据提示即可完成打包。...打包完成之后,可以直接通过java -jar 执行打包好的jar文件,不需要设置classpath,以及配置其他jar文件。

    java-boot-classpath-detector-1.16.jar

    查询 java home 以找到其引导类路径。 org.codehaus.mojo/java-boot-classpath-detector/1.16/java-boot-classpath-detector-1.16.jar

    mysql-connector-java-5.0.8.jar.zip

    java jar包,亲测试可用 ...把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。

    java-boot-classpath-detector-1.13.jar

    查询 java home 以找到其引导类路径。 org.codehaus.mojo/java-boot-classpath-detector/1.13/java-boot-classpath-detector-1.13.jar

    java-boot-classpath-detector-1.6.jar

    查询 java home 以找到其引导类路径。 org.codehaus.mojo/java-boot-classpath-detector/1.6/java-boot-classpath-detector-1.6.jar

Global site tag (gtag.js) - Google Analytics