我有一个准备发布的Java项目,但是我在最后一个障碍上绊倒了。该程序在IDE中运行良好,但是在我运行mvn clean install
并成功创建目标jar之后,应用程序在命令行和IDE中都失败了。我可以让它在IDE中再次运行,从IDE内进行重建。
还有其他人经历过类似的事情吗?
mvn clean install
后的错误为
2014-08-08_10:38:20.328 INFO coza.modh.fxplatform.Controller - Application start
2014-08-08_10:38:20.344 INFO c.m.f.c.p.DataSourceFactory - Connecting to Database.
2014-08-08_10:38:20.499 INFO coza.modh.fxplatform.Controller - Model created
Exception in thread "main" java.lang.NullPointerException
at coza.modh.fxplatform.view.MainView.<init>(MainView.java:46)
at coza.modh.fxplatform.Controller.startup(Controller.java:40)
at coza.modh.fxplatform.Application.main(Application.java:7)
它失败的那行看起来像这样:
setContentPane(contentPane);
如果我在IDE中重新构建,那么变量在到达这里时不是空的,但是在mvn命令之后,变量在到达这一点时是空的。
编辑:有人指出,可能与我使用了intelllij GUI设计工具而Maven可能无法与之结合有关。可能性?
我今天遇到了类似的问题。解决问题-
首先,将以下内容添加到pom.xml
<dependency>
<groupId>com.intellij</groupId>
<artifactId>forms_rt</artifactId>
<version>5.0</version>
</dependency>
其次,正如你所说的,使用正确的maven插件来创建构建。
contentPane不太可能为空,但请检查。无论如何都要进行一次干净的构建。可能行号不完全正确
通常问题是资源,如应用程序图标。
- 它们是而不是File,而是压缩在jar中。所以像/src/main/resources/…
- 不使用反斜杠
和
- 此外,文件路径是区分大小写的。
这可能是由不同的库版本引起的,您是否更改了Eclipse中的构建路径?(项目->属性->构建路径->库)。应该只有"JRE系统库"。如果有更多,那么它可能会被加载,而不是Maven依赖项之一。您使用"mvn clean install"意味着它是针对Maven依赖项编译的,因此它的运行方式不同。
- 在运行代码 之前在系统上安装Maven(没有IDE)
- 确保您已将系统属性M2_HOME设置为Maven安装位置,并将Maven bin文件夹添加到PATH
进入包含项目pom.xml的目录,输入"mvn install"+ Enter来构建项目
如果它是一个简单的项目,打包成JAR,你可以通过在控制台中输入这样的内容来运行它:
$ java -cp target/simple-1.0-SNAPSHOT.jar org.yourcompany.projectNam.App
并输入