spring项目下写个界面idea可以运行,maven打包jar报错,界面类空指针

kyle小哥 发布于 02/02 16:28
阅读 258
收藏 0

spring主函数入口

public static void main(String[] args) {
        System.setProperty("java.awt.headless", "false");
        SpringApplication.run(DemoApplication.class, args);
    }

界面代码

@Component
public class T extends JFrame {
	//内容没写,
}

原本没有继承JFrame之前项目可以运行,T.class可以实例化。
继承之后报如下错误;

java.awt.HeadlessException: null

然后在主函数加System.setProperty("java.awt.headless", "false");后可以在idea正常运行。
但是用maven打包成jar又报错了,错误如下;

[ERROR] contextLoads  Time elapsed: 0.001 s  <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 't' defined in file [D:\JavaPorject\com\Stock\target\classes\com\example\demo\utils\T.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.utils.T]: Constructor threw exception; nested exception is java.awt.HeadlessException
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.utils.T]: Constructor threw exception; nested exception is java.awt.HeadlessException
Caused by: java.awt.HeadlessException

找了几个方法都是都能解决在idra运行,但是用maven打包成jar就会报错。

请问一下改如何解决?谢谢!

加载中
0
f
freezingsky
这种问IDE问题的,帮不上忙😀
kyle小哥
kyle小哥
应该是我写代码有问题😅
0
z
zuhizo

环境变量里的jdk版本和idea配置的jdk版本不一样

kyle小哥
kyle小哥
还不清楚是不是版本的问题
0
chentao106
chentao106
idea用的是自带jdk,maven打包用的是主机默认jdk,搞清楚这两者的版本差异
kyle小哥
kyle小哥
应该不是版本问题,不写界面打包是没有问题的
0
明月依稀
明月依稀
你可以看idea run时的控制台,会打印出使用的jdk,依赖的系统包,JVM参数。用这个参数试试行不行。
kyle小哥
kyle小哥
idea可以运行,已经加了运行参数。只是打包出错。应该是代码写法有问题
0
chentao106
chentao106

你这个不是空指针,是异常message为空;空指针是NullPointException。

你应该把T.class的代码贴出来看看

kyle小哥
kyle小哥
我t.class没写内容也报错,因为继承了JFrame
返回顶部
顶部