从命令提示符处执行带有多个类路径库的jar文件 [英] Execute jar file with multiple classpath libraries from command prompt

查看:107
本文介绍了从命令提示符处执行带有多个类路径库的jar文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Maven项目,它生成一个jar文件并将所有依赖项复制到 target / lib 文件夹。我想在客户端的机器(windows)上执行这个项目。所以,我将 myproject.jar 复制到 C:\ xxz 文件夹以及所有依赖关系 C:\ xyz \ lib 文件夹。如何从客户端的命令提示符执行此项目?
我试图使用 java -cp lib\ * .jar -jar myproject.jar 来自 C:\ xyz 文件夹,但它会抛出以下错误。

I have a Maven project which generates a jar file and copies all dependencies to target/lib folder. I want to execute this project on client's machine (windows). So, I copied myproject.jar to C:\xyz folder and all dependencies to C:\xyz\lib folder. How do I execute this project from client's command prompt? I tried to use java -cp lib\*.jar -jar myproject.jar from C:\xyz folder but it throws following error.

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个库,它可能会在未来的版本中增长。有没有更好的方法呢?

I think if I specify all dependencies in classpath (like java -cp lib\dep1.jar;dep2.jar), it will get rid of the problem but I don't want to do this as I have 40 libraries already and it might grow in future releases. Is there a better way to do this?

推荐答案

让maven生成一个批处理文件来启动你的应用程序。这是最简单的方法。

Let maven generate a batch file to start your application. This is the simplest way to this.

你可以使用 appassembler-maven-plugin 用于此类目的。

You can use the appassembler-maven-plugin for such purposes.

这篇关于从命令提示符处执行带有多个类路径库的jar文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆