我有一个Maven项目,该项目生成一个jar文件并将所有依赖项复制到target/lib
文件夹。我想在客户端计算机(Windows)上执行该项目。因此,我将复制myproject.jar
到C:\xyz
文件夹,并将所有依赖项复制到文件C:\xyz\lib
夹。如何从客户端的命令提示符下执行此项目?我尝试java -cp lib\*.jar -jar myproject.jar
从C:\xyz
文件夹中使用,但是会引发以下错误。
Exception in thread "main" java.lang.NoClassDefFoundError: lib\commons-codec-1/3/jar
Caused by: java.lang.ClassNotFoundException: lib\commons-codec-1.3.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: lib\commons-codec-1.3.jar. Program will exit.
我想,如果我在classpath中指定所有依赖项(如java -cp lib\dep1.jar;dep2.jar
),它将解决此问题,但是我不想这样做,因为我已经有40个库,并且在将来的版本中可能会增加。有一个更好的方法吗?
让maven生成一个批处理文件以启动您的应用程序。这是最简单的方法。
您可以将appassembler-maven-
plugin
用于此类目的。
要执行一个jar命令,请使用>Java-jar jar-file-name.jar 如果JAVA_HOME版本与使用构建的jar文件的JDK版本匹配,则工作很好。否则会给出以下错误。 我有一个在JDK1.8中构建的第三方jar,在这个JDK上我没有任何控制权来更改和重建JDK版本。 我有一台unix机器,其中的JAVA_HOME设置为JDK1.5。而我的应用程序是部署在同一台机器中的其他几个应用程
问题内容: 我已经编译了一个JAR文件,并在清单中指定了Main-Class(我使用了Eclipse Export函数)。我的依赖项都在标有的目录中。在指定应将JAR文件用作类路径的同时,我似乎无法获得关于如何执行我的JAR文件的直接答案。 我试过了: 等等… 每个都给出一个错误说: 或NoClassDefFoundError指示未找到库。 我什至尝试重新制作JAR文件,并包括lib目录和内容,但
好吧,我是新来的Java,并试图从命令提示符运行一个java程序(因为Sublime编译和运行它的小东西,但不允许用户输入和东西)。 我将命令提示符设置为我有我的文件的文件夹,称为Learner.java. 我在环境变量中为JDK bin设置了一个路径,并创建了一个JAVA_HOME变量,其中包含JDK bin的值(其他一些帖子建议)。 在我讨论这个问题之前,这是我的代码: 如你所见,这是一个以“
我正在使用Netbeans 8.2开发Spring应用程序。我遇到麻烦的这个应用程序是一个Spring Boot1.5.3应用程序。我有一个spring xml文件和一个application.properties保存在根项目目录下的/config中。 我正在通过批注和诸如之类的值属性将spring xml文件传递给我的项目。 当我单击Netbeans中的“Run Project”按钮时,我的Sp
问题内容: 我正在运行Ubuntu,并希望通过包含多个jar文件从终端执行Java文件。 我的所有罐子都放在tha jar文件夹中。 我试过了 我得到以下错误。 谁能指导如何在classpath中使用多个jar? 问题答案: 从类路径中删除空格并添加当前路径 从Java 6开始,您可以使用类路径通配符
问题内容: 我编写了一个名为Main.java的.java文件,并已在Windows命令提示符下使用javac对其进行了编译。编译器正在创建多个.class文件(称为Main.class,Main $ 1.class和Main $ 2.class,大概是因为我的Main.java文件中有匿名内部类)。我试图创建一个可运行的.jar文件,以便双击运行该应用程序(它是Java Swing应用程序)的快