尝试运行jar程序并找到类找不到错误。
如图所示,我已将所有依赖jar包装在lib文件夹下并将其打包在jar文件中。
lib目录的内容:
在我的manifest.mf文件中,我有
Manifest-Version: 1.0
Class-Path: .\lib\arapi63.jar;.\lib\spring.jar;.\lib\commons-logging.j
ar;.\lib\log4j.jar;..\conf;.\lib\ojdbc14.jar
Created-By: 1.5.0_12 (Sun Microsystems Inc.)
Main-Class: RemedyRecord
当我尝试使用
运行此jar时 java -jar remedyDSTX.jar
Exception in thread "main" java.lang.NoClassDefFoundError:
com/remedy/arsys/api/ARException
arapi63.jar中没有ARException类,它存在于我的类路径中,所以我不确定为什么这里没有引用...有什么想法吗?
更新
Manifest-Version: 1.0
Class-Path: lib/arapi63.jar;lib/spring.jar;lib/commons-logging.jar;lib
/log4j.jar;lib/ojdbc14.jar
Created-By: 1.5.0_12 (Sun Microsystems Inc.)
Main-Class: RemedyRecord
我根据Jon的评论更新了我的清单,但仍然收到相同的错误消息。
答案 0 :(得分:3)
我认为问题在于Class-Path
条目的格式。
根据tutorial:
指定要包含在applet或应用程序的清单文件的Class-Path头字段中的类。 Class-Path标头采用以下形式:
Class-Path:jar1-name jar2-name directory-name / jar3-name
请注意,这是以空格分隔的,并在目录名和jar文件名之间使用正斜杠。
请尝试Class-Path
条目:
Class-Path: lib/arapi63.jar lib/spring.jar lib/commons-logging.jar lib/log4j.jar lib/ojdbc14.jar
请注意,我已删除了../conf
部分 - 我不相信您可以将目录添加到jar文件清单中的类路径中。 (我刚刚尝试过,但它没有用。)