Java 将springjar添加到类路径

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

我有一个使用Spring3.0的NetBeansJava控制台项目(它是一堆jar而不是一个jar)

当我试图从命令行执行它时,我得到

 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?