Could not find or load main class org.springframework.boot.loader.JarLauncher

简述

今天用java -jar出现了个匪夷所思的错误
Error: Could not find or load main class org.springframework.boot.loader.JarLauncher,这个第一眼感觉应该是jar包本身的问题。结果排除下来问题也算找到了。

从java -jar说起

java -jar app.jar用这个启动没啥问题,但是由于要指定java的工作路径所以我们加了个参数java -jar -Duser.dir=/home app.jar一直行就一脸懵逼了。

java -jar -Duser.dir=/home app.jar
# 报错如下
# Error: Could not find or load main class org.springframework.boot.loader.JarLauncher

上述错误搞得我n脸懵逼,之前一直都是这么用的,首先排除jar的问题,然后我找了很久以前docker里面用的启动参数,发现app.jar是决定路径,然后改了试一试,好的,我滴乖乖就是这个问题

指定user.dir时,jar包必须用绝对路径

# 好的,jar包改成绝对路径就能运行了,并且正确修改工作路径
java -jar -Duser.dir=/home /home/test/app.jar
### 如何在 Spring Boot 中集成 JavaCV #### 添加 Maven 依赖 为了使 Spring Boot 应用程序能够使用 JavaCV 功能,需要向 `pom.xml` 文件中添加相应的依赖项: ```xml <dependencies> <!-- Other dependencies --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.7</version> </dependency> </dependencies> ``` 此操作引入了 JavaCV 及其所需的本地库文件。 #### 创建配置类 接着定义一个配置类来初始化 JavaCV 的环境设置。这一步骤并非强制性的,但对于管理资源非常有用: ```java import org.bytedeco.javacpp.Loader; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JavacvConfig { @Bean public Loader loader() { return new Loader(); } } ``` 上述代码片段展示了如何通过 Spring 上下文加载并注册 JavaCV 加载器实例[^4]。 #### 编写业务逻辑组件 下面是一个简单的例子,展示怎样利用 OpenCV 来读取图像并将结果显示出来: ```java import org.bytedeco.opencv.global.opencv_imgcodecs; import org.bytedeco.opencv.global.opencv_imgproc; import org.bytedeco.opencv.opencv_core.Mat; import org.springframework.stereotype.Service; @Service public class ImageProcessingService { private final String imagePath = "path/to/your/image.jpg"; public Mat loadImageAndProcess() throws Exception { // Load image from file path. Mat srcImage = opencv_imgcodecs.imread(imagePath); if (srcImage.empty()) throw new RuntimeException("Could not open or find the image!"); // Convert to grayscale for processing purposes. Mat grayScaleImg = new Mat(); opencv_imgproc.cvtColor(srcImage, grayScaleImg, opencv_imgproc.COLOR_BGR2GRAY); return grayScaleImg; } } ``` 这段代码实现了基本的图片处理功能——将彩色图转换成灰度图,并返回处理后的矩阵对象以便进一步操作或保存到磁盘上[^5]。 #### 测试与运行 最后,在应用程序入口处调用该服务方法来进行实际测试: ```java @SpringBootApplication public class Application { public static void main(String[] args) { var context = SpringApplication.run(Application.class, args); try { ImageProcessingService service = context.getBean(ImageProcessingService.class); Mat resultMat = service.loadImageAndProcess(); System.out.println("Processed image successfully."); } catch(Exception e){ e.printStackTrace(); } } } ``` 这样就完成了一个完整的流程:从构建项目结构、编写必要的代码到最后执行验证整个过程都得到了体现[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值