public class LoadJar { public static void main(String[] args) { String classPath = "loader.HelloImpl" ; // Jar中的所需要加载的类的类名 String jarPath = "file:///D:/tmp/test.jar" ; // jar所在的文件的URL loadJar1( classPath , jarPath); loadClass( classPath ); loadJar2( classPath , jarPath); loadClass( classPath ); public static void loadJar1(String classPath , String jarPath) { ClassLoader cl; try { // 从Jar文件得到一个Class加载器 cl = new URLClassLoader( new URL[] { new URL(jarPath) }); // 从加载器中加载Class Class <?> c = cl.loadClass( classPath ); // 从Class中实例出一个对象 HelloIface impl = (HelloIface) c.newInstance(); // 调用Jar中的类方法 System.out. println (impl.hello()); System.out. println (impl.sayHi( "zhangsan" )); try { HelloIface impl2 = (HelloIface) Class .forName( classPath ) .newInstance(); System.out. println (impl2.hello()); } catch (ClassNotFoundException e) { System.out. println ( "非系统加载器加载的JAR,不能通过Class.forName使用" ); } catch (Exception e) { e.printStackTrace(); public static void loadJar2(String classPath , String jarPath) { URLClassLoader urlLoader = (URLClassLoader) ClassLoader.getSystemClassLoader(); Class <URLClassLoader> sysClass = URLClassLoader. class ; try { //改变方法的可见性(即通过反映访问本来不可以访问的方法) Method method = sysClass.getDeclaredMethod( "addURL" , new Class [] { URL. class }); method.setAccessible( true ); method.invoke(urlLoader, new URL(jarPath)); Class <?> objClass = urlLoader.loadClass( classPath ); Object instance = objClass.newInstance(); Method method2 = objClass.getDeclaredMethod( "sayHi" , new Class []{ String. class }); System.out. println (method2.invoke(instance, "zhangsan" )); HelloIface impl2 = (HelloIface) Class .forName( classPath ).newInstance(); System.out. println (impl2.hello()); } catch (Exception e) { e.printStackTrace(); public static void loadClass(String classPath ){ try { HelloIface impl2 = (HelloIface) Class .forName( classPath ) .newInstance(); System.out. println (impl2.hello()); } catch (Exception e) { System.out. println ( "非系统加载器加载的JAR,不能通过Class.forName使用" ); 【笔记17】使用 jad 工具把 java 的 class 文件转换为 java 文件;使用 luyten 把 java 的 jar 包转换为 java文件
📃 我的代码被存放在公司的电脑上 📃 疫情原因使得我只能在家办公 📃 而公司已经被隔离了😂 (怕公司的电脑感染新冠病毒) 📃 我无法在公司代码的基础上继续编写代码 📃 我有两种选择:① 重新编写代码;② 跑路 📃 但是我选择了第三个选项:把 Java 项目打包后的 jar 文件转换为打包之前的 java 文件 📃 在这里我推荐两款工具,这两款工具都可以把 class 文件转换为 java 文件 🌼 ① jad 工具:可把 class 文件转换为 java 文件 【本文章的前四节是介绍 jad 工具的使用】 🌼 ② Luyten 工具:可把 jar 包转换为 java 文件
二.添加 jar 包到 maven 库 ???? 第三方自定义 jar 包可以添加到本地 maven 库中,随后即可 mvn package 打入到最终的项目 jar 包中,该方法最方便。创建 install.sh 文件,jar_path 为第三方自定义 jar 包在设备的位置,groupId、artifactId 和 版本号 version 自己定义,执行脚本后 2021年 最新 多阶段构建dockerfile实现java源码编译打jar包并做成镜像
多阶段构建指在Dockerfile中使用多个FROM语句,每个FROM指令都可以使用不同的基础镜像,并且是一个独立的子构建阶段。使用多阶段构建打包Java应用具有构建安全、构建速度快、镜像文件体积小等优点.
[-] .\Navicat-Cracker NavicatCrackerDlg.cpp:332 -3All patch solutions are suppressed. Patch abort!HI