aardio 发布后没有把jar放到exe中

请教问题,我把springboot打包的jar放到了res目录下,运行后可以正常访问 http://localhost:8082/user/find/1,点击发布后生成exe文件,当我把jar删除后,在启动exe就找不到jar了,是不是没有把该jar打包到exe中?怎么解决

img


//运行 jar 程序
import java;
import console; 


 
/*
实际上调用Java虚拟机,
并且调用 main函数也可以运行 jar 程序,例如:

import java;
java.addClassPath("~\lib\java\yuiCompressor\.res\yuicompressor.jar")

var jvm = java(); 
YUICompressor = jvm.import( "com.yahoo.platform.yui.compressor.YUICompressor");  
var ret = YUICompressor.main({"d:\test.js",    "-o","d:\testmin.js"})

但是这样运行有一个问题, jar中的 main 函数通常会假设自己是一个独立进程,
这样例如上面的 YUICompressor ,他在出错时就会调用 System.exit() 关闭当前进程.
对于这类程序就可以考虑用下面的方法创建子进程,关闭子进程不会影响到父进程
*/
var prcs = java.popenProcess( 
    "-verbose:class",//记录类载入信息
    "-jar",//运行jar
    io.fullpath( "D:/cqc-service-provider-0.0.1-SNAPSHOT.jar" )
); 
 
var tOutBuffer = {}; 
for( all,out,err in prcs.each() ){
    console.log( out,err );
    table.push( tOutBuffer,all);
}

//在输出结果中搜索类加载信息
var outBuffer = string.join( tOutBuffer );
var logClass = {}
for classPath,filePath in string.gmatch(outBuffer 
    ,"\[Loaded\s+(.+?)\s+from\s+([^\]]+)" ) { 
    logClass[classPath] = filePath;
}

//这个就是得到的结果了
for(classPath,filePath in logClass){
    console.log(classPath) 
    console.log( " =>",fsys.shortpath(filePath),'\n' ) 
}

console.pause();


在发布 Spring Boot 应用程序时,需要使用 Maven 或 Gradle 构建可执行 jar 包,将所有依赖项(包括 Spring Boot 库)打包到 jar 文件中并在运行时使用。因此,可以将生成的 jar 文件单独放置到某个目录下并单独运行,不需要在原始开发项目中启动该 jar 文件。
在使用 exe4j 等工具生成 Windows 可执行文件时,需要确保将包含 Spring Boot 应用程序的 jar 文件打包到 exe 中,否则应用程序将无法启动或无法找到 jar 文件。可以通过以下方法解决这个问题:

  1. 在使用 exe4j 生成可执行文件之前,先使用 Maven 或 Gradle 构建 Spring Boot 应用程序,并确保在打包 jar 文件时使用 mvn package 命令或在 Gradle 中使用 gradle bootJar 命令。这将确保依赖项和 Spring Boot 库一起打包到 jar 中并在运行时使用。
  2. 在 exe4j 中打开项目设置,然后在 "Classpath" 选项卡中添加包含 Spring Boot 应用程序的 jar 文件,例如:
 D:\myproject\myapp.jar

注意这里使用的是绝对路径指向 myapp.jar 的位置。确保该 jar 文件已成功打包到 Windows 可执行文件中。
设置 "Main Class" 选项卡中的 Spring Boot 应用程序的主类,例如 com.example.myapp.MyApplicatoin 。
将 exe 工具运行时的工作目录 (Working Directory) 设置为包含 Spring Boot 应用程序 jar 文件的目录时,Spring Boot 应用程序可以正确地从 exe 文件夹中的 jar 文件加载依赖项,并可以正常运行。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在生成的exe文件中不会自动将jar文件打包进去,需要手动将jar文件复制到生成的exe文件所在的目录下,然后在exe文件中设置启动命令时,指定jar文件的路径,例如:

java -jar D:/cqc-service-provider-0.0.1-SNAPSHOT.jar


在这个命令中,D:/cqc-service-provider-0.0.1-SNAPSHOT.jar 是jar文件的完整路径。你可以将jar文件复制到exe文件所在的目录下,然后修改exe文件的启动命令,让其指向复制后的jar文件路径。