老问题:在命令行下执行jar包的问题

Sanco 2006-03-08 11:39:47
testOne.jar 需要用到 testTwo.jar

在命令行中用:
java -jar testOne.jar (试过用-classpath 但是不起作用)

所以通过testOne中的Manifest.mf加入
Main-Class: testOne.Main
Class-Path: testTwo.jar

情况是:
1。如果我把它们放在同一目录下,运行正常。
2。不在同一目录,在Class-Path行使用-相对目录,运行正常
3。不在同一目录,在Class-Path行使用-绝对目录,运行不正常,提示找不到Main Class。

因为如果这个包要访问很多其他目录下的包,这就很麻烦了。
难道都要copy到同一目录下吗?

注意:现在在命令行下作,不使用任何IDE(用Eclipe这点很容易作到)
...全文
1903 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sanco 2006-03-08
  • 打赏
  • 举报
回复
还是没用。不过还是感谢 “我爱花猫”
sportboys 2006-03-08
  • 打赏
  • 举报
回复
sorry for my poor knowledge on the absolute path and relative path...
pdvv 2006-03-08
  • 打赏
  • 举报
回复
java -jar -Dclasspath=testTwo.jar testOne.jar

指定classpath参数肯定可以!

另外关于绝对路径问题,参见:http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html

Class-Path: servlet.jar infobus.jar acme/beans.jar
With this header, the classes in the files servlet.jar, infobus.jar, and acme/beans.jar will serve as extensions for purposes of the applet or application. The URLs in the Class-Path header are given relative to the URL of the JAR file of the applet or application.

只能用相对路径。
Sanco 2006-03-08
  • 打赏
  • 举报
回复
错误信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: testOne/Main

用相对路径则没问题。
Sanco 2006-03-08
  • 打赏
  • 举报
回复
/和\两种情况都试过了,没有任何区别,除非用相对路径。
sportboys 2006-03-08
  • 打赏
  • 举报
回复
often we put all the third-party jars, utils jars into one or two folders named lib.

so you can add them into classpath in the manifest.mf of the target jar.
I don't think it won't work with absolute path, remember the difference between \ and / in Windows.
资源下载链接为: https://pan.quark.cn/s/9648a1f24758 在命令行环境下运行JAR文件并传递参数是一种常见的操作。以下是一些关键点和方法: 基本运行命令 可以使用java -jar Test.jar命令来运行JAR文件。如果一切正常,控制台会输出相应的程序信息,表明程序已成功运行。 添加VM参数 在运行JAR程序时,可以通过命令行添加虚拟机(VM)参数。例如,使用java -D<系统属性名>=<值> -X<选项> 的格式。如果需要设置JVM的堆大小或开启远程监控,可以使用类似java -D<属性名>=<值> -Xms<初始堆大小> -Xmx<最大堆大小> 的命令。 解决空指针异常 在某些情况下,通过命令行运行JAR文件可能会遇到空指针异常(NullPointerException, NPE)。这通常是由于Java环境变量未正确配置导致的。确保环境变量正确设置,可以避免此类问题。 打包和运行 在Java命令行下打包JAR文件时,可以指定程序入口,使得可以直接通过java -jar XXX.jar运行JAR包。这种方式方便快捷,适合快速部署和测试。 生成可双击运行的JAR文件 在Windows环境下,可以通过命令行工具创建一个可双击运行的Java应用程序(.jar文件)。这不仅简单快捷,而且适合希望快速部署或测试的用户。 其他工具和方法 有些工具如jarjar可以用于处理JAR文件,通过命令行运行jarjar并指定配置文件和输入输出JAR文件,可以实现对JAR文件的进一步处理。 对于一些特定的框架或工具,如Flink,其命令行接口(CLI)可以用于运行打包成JAR文件的程序,并控制它们的执行过程。 总之,掌握这些命令行操作和工具的使用,可以帮助开发者和系统管理员更好地控制和优化Java程序的运行环境,提高工作效

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧