java安装拓展程序

来源资料:https://docs.oracle.com/javase/tutorial/ext/basics/install.html
拓展例子:https://gitee.com/longguiyunjosh/java-spi/tree/master/
偶尔看到的资料,深怕过了一段时间就忘记了。随便就写了一下。

在我们打包jar工程的时候,往往都有很多依赖第三方的jar包。常用的maven构建工具,在我们打jar包的时候,需要把依赖的jar包打到固定的文件夹下。
然后jar包里的METE-INF文件夹下的MANIFEST.MF文件会中有 CLASS-PATH会有依赖的jar包配置,多个依赖用空格分开。

Manifest-Version: 1.0
Built-By: xx
Class-Path: lib/DemoC-1.0-SNAPSHOT.jar lib/DemoB-1.0-SNAPSHOT.jar
Created-By: Apache Maven 3.5.3
Build-Jdk: 1.8.0_171
Main-Class: com.amzing.jar.DemoA

如果没有指定Class-Path的话,我们可以把依赖的jar包放入jre中的lib/ext中去,jvm会直接加载我们需要的jar包。

可以通过配置 -verbose:class查看jvm加载了那些class。
下面可以发现DemoC实在jre/lib/ext中的文件夹下

[Loaded java.lang.Void from D:\develop_tool\Java\jdk1.8.0_171\jre\lib\rt.jar]
[Loaded com.amzing.jar.A from file:/D:/work/temp_code/jar-install/DemoA/target/DemoA-1.0-SNAPSHOT.jar]
[Loaded com.amzing.jar.C from file:/D:/develop_tool/Java/jdk1.8.0_171/jre/lib/ext/DemoC-1.0-SNAPSHOT.jar]

我们直接指定jar文件,可以直接调用到依赖的jar包

PS D:\work\temp_code\jar-install\DemoA\target> java -jar .\DemoA-1.0-SNAPSHOT.jar
I am Class A.
I am class C.

到此结束。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 童年时期,孩子的基本心理需求没有得到父母足够的重视和理解,那么,在以后的岁月里,他会采取一切手段,做更多的事情来弥...
    文君如是阅读 223评论 0 0
  • 2018年1月10日星期三 今早儿子临走前把昨晚给他折的小鱼都带着了,我怕他弄坏了叮嘱他到学校先给老师,他答应的挺...
    妮妮哲阅读 166评论 0 4
  • (背景:A现在进入了职业瓶颈的迷茫期,和咨询师聊天)A说:“我现在很焦虑,觉得没有什么未来?”咨询师说:“你为什么...
    悦心觉醒阅读 264评论 0 0