Java使用当前jar包的核心方法是:通过java -jar
命令直接运行可执行jar,或通过ClassLoader
动态加载jar中的类。关键点包括:① 确保jar包含Main-Class
清单属性;② 正确配置类路径;③ 掌握反射调用技巧。
-
直接运行可执行jar
若jar文件包含META-INF/MANIFEST.MF
且指定了Main-Class
,直接执行:bashCopy Code
java -jar your.jar
可通过
jar tf your.jar
验证清单文件。未指定主类时需手动声明:bashCopy Code
java -cp your.jar com.example.Main
-
动态加载jar中的类
使用URLClassLoader
加载非主类:javaCopy Code
URL[] urls = { new URL("file:/path/to/your.jar") }; ClassLoader loader = new URLClassLoader(urls); Class<?> clazz = loader.loadClass("com.example.YourClass"); Object instance = clazz.newInstance();
注意处理
ClassNotFoundException
和权限问题。 -
依赖管理场景
当当前jar依赖其他jar时:- 合并所有依赖为fat jar(使用Maven Assembly或Shadow插件)
- 通过
-classpath
指定多个jar:bashCopy Code
java -cp lib/*:your.jar com.example.Main
-
资源文件访问
通过Class.getResource()
读取jar内资源:javaCopy Code
InputStream input = getClass().getResourceAsStream("/config.properties");
路径需以
/
开头表示从jar根目录查找。
提示:调试时可添加-verbose:class
参数观察类加载过程,遇到NoClassDefFoundError
时检查依赖是否完整。