我的pom.xml是
4.0.0 com.spt astra 1.0-SNAPSHOT jar central Maven Repository Switchboard default http://repo1.maven.org/maven2 false log4j log4j 1.2.17 javafx javafx 2.2.3 system ${project.basedir}/lib/jfxrt.jar org.apache.maven.plugins maven-jar-plugin 2.4 true lib/ com.spt.buket_3_wifi.desktop.Main stadefault-copy-resources package jar org.apache.maven.plugins maven-dependency-plugin 2.7 copy-dependencies package copy-dependencies ${project.build.directory}/lib false false true
它成功编译,依赖项log4j-1.2.17.jar和javafx-2.2.3.jar都被复制到lib文件夹.问题是lib/javafx-2.2.3.jar没有包含在jar清单文件中的Class-Path中,所以我无法运行它.MANIFEST.MF是:
Manifest-Version: 1.0 Built-By: karasev Build-Jdk: 1.7.0_40 Class-Path: lib/log4j-1.2.17.jar Created-By: Apache Maven 3.1.0 Main-Class: com.spt.buket_3_wifi.desktop.Main Archiver-Version: Plexus Archiver
如您所见,仅添加了lib/log4j-1.2.17.jar.有什么问题?有任何想法吗?
您可以尝试这种方法:
...[truncated]... <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.spt.buket_3_wifi.desktop.Main</mainClass> </manifest> <manifestEntries> <Class-Path>lib/javafx-2.2.3.jar</Class-Path> </manifestEntries> </archive> </configuration> ...[truncated]...
但这对于JavaFX库来说并不是必需的,因为它已经在JVM类路径中了.