【发布时间】:2012-11-02 02:59:54
【问题描述】:
我有一个在 NetBeans/Maven 中开发的应用程序,可以通过命令行启动:
mvn exec:exec "-Dexec.executable=C:\\Java\\jdk1.6.0_33\\bin\\java.exe" "-Dexec.args=-Dlog4j.properties=... -classpath %classpath com.xxx.MyLauncher" -Dexec.classpathScope=runtime -Dexec.workingdir=
现在我需要通过标准的java命令行方法来运行应用程序,比如:
java -Dlog4j.properties=... -jar myapp-1.2-SNAPSHOT.jar
不幸的是,这不能以相同的方式工作,因为我得到以下异常:
opencard.core.util.OpenCardPropertyLoadingException: property file not found
问题:
- 使用 Exec-Maven 插件启动应用程序与在命令行上执行标准 java 有什么区别?
- 是否有一种简单的方法可以将 Maven 执行脚本转换为标准命令行?
- 如何成功运行应用程序?
【问题讨论】:
-
你的 jar 是否包含所有依赖项?请参阅此处了解更多信息:link
-
显然在命令行上执行 jar,因为它是可执行的,而在 pom.xml 中,你给它类路径和主类;您是否检查过您的清单条目是否与 Maven 构建的已执行命令行匹配?
-
似乎是类路径的问题,由这个错误引起的 [jira.codehaus.org/browse/MASSEMBLY-334].用 maven-shade-plugin 替换 maven-assembly-plugin 解决了这个问题。感谢您的支持!
标签: java command-line smartcard exec-maven-plugin