Java 将springjar添加到类路径
我有一个使用Spring3.0的NetBeansJava控制台项目(它是一堆jar而不是一个jar) 当我试图从命令行执行它时,我得到Java 将springjar添加到类路径,java,netbeans,Java,Netbeans,我有一个使用Spring3.0的NetBeansJava控制台项目(它是一堆jar而不是一个jar) 当我试图从命令行执行它时,我得到 Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext Caused by: java.lang.ClassNotFoundException: org.springframework.context.Ap
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: com.aosprojects.transportservice.runner.InitialRunner. Program will exit.
如何解决这个问题
我尝试使用-cp来指定包含所有jar的文件夹
java -cp libs/spring/* -jar dist/XXXXX.jar
这告诉您正确的方法: 在项目上单击鼠标右键,选择“属性”,然后按照说明操作。加上你需要的所有罐子
如果它是一个可执行JAR,那么必须将所有依赖项正确地添加到清单中。谷歌搜索如何操作的说明并试一试。这告诉你正确的操作方法: 在项目上单击鼠标右键,选择“属性”,然后按照说明操作。加上你需要的所有罐子
如果它是一个可执行JAR,那么必须将所有依赖项正确地添加到清单中。谷歌搜索关于如何做的说明并试一试。如果您使用Netbeans IDE(具有正确的构建路径)进行编译,那么构建工件(jar)和
库将位于dist目录中
将cd放入${project root}/dist
目录中,然后运行:
java -jar XXXXX.jar
Netbeans必须在MANIFEST
中处理对库的依赖关系
PS:在dist目录中查看生成的自述文件。如果您使用Netbeans IDE(具有正确的构建路径)进行编译,那么构建工件(jar)和库将位于dist目录中
将cd放入${project root}/dist
目录中,然后运行:
java -jar XXXXX.jar
Netbeans必须在MANIFEST
中处理对库的依赖关系
PS:在dist目录中查看生成的自述文件。这是我的目录结构:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
~/downloads/
|--libs
---|--弹簧
------|--org.springframework.expression-3.1.0.M1.jar
------|--org.springframework.context-3.1.0.M1.jar
------|--其余的罐子
|--java
Spring.java的源代码:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
导航到~/Downloads/并执行以下操作:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
输出:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
这是我的目录结构:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
~/downloads/
|--libs
---|--弹簧
------|--org.springframework.expression-3.1.0.M1.jar
------|--org.springframework.context-3.1.0.M1.jar
------|--其余的罐子
|--java
Spring.java的源代码:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
导航到~/Downloads/并执行以下操作:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
输出:
import org.springframework.context.ApplicationContext;
public class Spring{ public static void main(String... args){ ApplicationContext ac; System.out.println("Successfully declared reference of type ApplicationContext. Exiting...");}}
javac -cp "libs/spring/*" Spring.java
jar cvfe Spring.jar Spring Spring.class
java -cp ".:libs/spring/*" -jar Spring.jar
Successfully declared reference of type ApplicationContext. Exiting...
如果您使用maven构建应用程序,它将在netbeans IDE中运行,但您需要在maven pom.xml中定义一个插件,以便在final.jar中包含所有必需的.jar,使其可执行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>yourmainpackagename.YourMainClass</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven阴影插件
包裹
阴凉处
YourMain PackageName.YourMainClass
META-INF/spring.handlers
META-INF/spring.schemas
这种方法使用maven shade插件。您也可以使用maven assembly插件,但要准备好面对讨厌的bug:p
干杯。如果您使用maven构建应用程序,它在netbeans IDE中运行,但是您需要在maven pom.xml中定义一个插件,以便在最终的.jar中包含所有必需的.jar,使其可执行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>yourmainpackagename.YourMainClass</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven阴影插件
包裹
阴凉处
YourMain PackageName.YourMainClass
META-INF/spring.handlers
META-INF/spring.schemas
这种方法使用maven shade插件。您也可以使用maven assembly插件,但要准备好面对讨厌的bug:p
干杯。我已经这样做了,但是当我导航到dist文件夹并尝试运行jar时,它会给出列出的例外情况您是否尝试运行jar?这是一个可执行的JAR?我已经这样做了,但是当我导航到dist文件夹并尝试运行JAR时,它会给出列出的例外情况您尝试运行JAR吗?它是一个可执行的JAR?