资讯专栏INFORMATION COLUMN

maven工程打包jar以及java jar命令的classpath使用

starsfun / 3735人阅读

摘要:二打包完工程的和依赖都在同一目录。此时,运行的命令,直接运行包即可。这个时候,容易想当然,把命令错误的写成错误展示实际上正确的写法应该是通过指定当前目录的方式,可以缩写为三如果运行的和依赖不在同一目录。

一、maven工程打包成jar文件插件。

        org.apache.maven.plugins
        maven-jar-plugin
        2.3.2
        
            
            
                com.wjl.Main
                
            
        
    
二、打包完工程的jar和依赖都在同一目录。

(1)如果通过maven打包时,指定了且正确。其效果完全等价于其他打包方式,自己在MANIFEST.MF指定好了Class-Path。
此时,运行的命令,直接运行jar包即可。

java -jar hello-test-0.0.1-SNAPSHOT.jar

(2)如果没有指定,或者手动设置MANIFEST.MF。此时,即便依赖的jar包都在相同目录下,指定运行的classpath。
这个时候,容易想当然,把命令错误的写成:

//错误展示
java -cp jackson-core-asl-1.9.4.jar:jackson-mapper-asl-1.9.4.jar -jar hello-test-0.0.1-SNAPSHOT.jar

实际上正确的写法应该是:

java -cp jackson-core-asl-1.9.4.jar:jackson-mapper-asl-1.9.4.jar:hello-test-0.0.1-SNAPSHOT.jar  com.wjl.Main

通过指定当前目录的方式,可以缩写为:

java -cp ./*:hello-test-0.0.1-SNAPSHOT.jar com.wjl.Main
三、如果运行的jar和依赖不在同一目录。

这个情况简单就是maven插件指定了为true,同时指定了
这样生成的MANIFEST.MF的classpath,都会在每个jar包的路径上带上prefix,使得java命令可以找到。

如果没有这样配置,那么就要在运行命令时,指定classpath了,命令如下:

java -cp lib/*:hello-test-0.0.1-SNAPSHOT.jar com.wjl.Main
四、maven插件把依赖的所有jar包找出来

    org.apache.maven.plugins
    maven-rar-plugin
    2.4

配置该插件,然后需要执行命令 mvn rar:rar 。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66187.html

相关文章

  • maven将dubbo工程打成jar包运行

    摘要:打包方式使用打包插件在文件最后新增以下代码。表达式支持通配符打成一个包如果需要将依赖的包都达到一个包中运行,可以使用这个插件。 maven打包方式 使用maven打包插件maven-jar-plugin在pom.xml文件最后新增以下代码。maven-dependency-plugin是指将依赖的jar包复制到指定目录maven-resources-plugin将依赖的resource...

    shengguo 评论0 收藏0
  • Maven详细教程

    摘要:清理上一次执行创建的文件处理资源文件编译代码执行单元测试文件创建拷贝到本地的仓库下面发布生成文档将工程所有文档生成网站,生成的网站界面默认和的项目站点类似,但是其文档用格式写的,目前不支持,需要用其他插件配合才能支持。 前言 本文可以帮助你加深对Maven的整体认识,不是一篇基础文章。如果你现在还没有用 Maven 跑过 HelloWorld,那么本文可能不适合你。 一、Maven简介...

    Keagan 评论0 收藏0
  • Spring Boot 打包可执行 jar ,为什么不能被其他项目依赖?

    摘要:从这里我们就可以看出,两个,虽然都是包,但是内部结构是完全不同的,因此一个可以直接执行,另一个则可以被其他项目依赖。一次打包两个一般来说,直接打包成可执行就可以了,不建议将作为普通的被其他的项目所依赖。 前两天被人问到这样一个问题: 松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误? 大伙有这样的疑问,就是因为还没搞清楚可执行...

    Ali_ 评论0 收藏0
  • classpath对获取配置文件影响

    摘要:,到现在为止一切都按部就班,执行上面的命令正常运行,读取里面的文件,并输出相应的属性。那么,如果我们想改变配置文件的内容是否需要修改源文件里的然后重新打包成呢显然这样做太麻烦也不太合理,你可以在外面配置一个新的让里的去读取。 Java中经常要用到各种配置文件xxx.properties来控制程序的运行或进行国际化等但是也常常遇到配置文件放置路径找不到的问题,这里以java.uitl.R...

    xumenger 评论0 收藏0
  • Mavenpom文件那些事

    摘要:文件项目隶属的实际项目名实际项目中的一个项目模块名称版本号当前项目打包的方式,默认为以上的配置会获得一个格式的包用于定义构建输出的一些附属的构建。 pom.xml文件 org.son.nexus//项目隶属的实际项目名 nexus-indexer//实际项目中的一个maven项目模块名称 2.0.0//版本号 jar//当前maven项目打包的方式,默认为jar 以上的配置会获得一个-...

    NoraXie 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<