修复代码如下:

@GetMapping(value = "/JarLauncherJar") //运行JarLauncher的jar包
public String JarLauncherJar() throws MalformedURLException, ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {

    // 创建 URLClassLoader,并将当前 JAR 文件添加到类路径中
    URL jarFileUrl = new URL("file:E:/jetlinks/jar/gt06-gsp-java-1.0.1.jar");
    URLClassLoader classLoader = new URLClassLoader(new URL[]{jarFileUrl});

    // 加载 JarLauncher 和 Launcher 类
    Class<?> jarLauncherClass = classLoader.loadClass("org.springframework.boot.loader.JarLauncher");
    Class<?> launcherClass = classLoader.loadClass("org.springframework.boot.loader.Launcher");

    // 获取 Launcher 类中 launch 方法
    Method launchMethod = launcherClass.getDeclaredMethod("launch", String[].class);
    String[] mainArgs = { "arg1", "arg2" };  // 根据需要提供命令行参数
    // 调用 launch 方法启动 JAR 文件
    launchMethod.invoke(jarLauncherClass.getDeclaredConstructor().newInstance(), (Object) mainArgs);
    return null;
}

修复内容包括以下部分:

  • 在创建 URLClassLoader 时,将 JAR 文件的 URL 修改为 "file:E:/jetlinks/jar/gt06-gsp-java-1.0.1.jar",以确保正确加载 JAR 文件。
  • 在调用 launchMethod.invoke() 方法时,将 jarLauncherClass.newInstance() 修改为 jarLauncherClass.getDeclaredConstructor().newInstance(),以适应较新版本的 Java
修复代码: GetMappingvalue = JarLauncherJar 运行JarLauncher的jar包 public String JarLauncherJar throws MalformedURLException ClassNotFoundException NoSuchMethodException InstantiationException IllegalAcces

原文地址: http://www.cveoy.top/t/topic/hHob 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录