执行Jar文件时遭遇ClassNotFoundException问题求助
解决Jar包无法找到主类com.Main的问题
问题根源
你执行打包命令时直接指定了bin/com/Main.class这类带前缀的路径,导致生成的Jar文件内部类结构为bin/com/Main.class,而非Java要求的com/Main.class(com包需位于Jar根目录下),因此JVM无法定位到主类。
解决方案
有两种方式可以修正这个问题:
方式一:切换到bin目录打包
先通过终端进入bin目录:
cd bin
然后执行打包命令:
jar cvfm DictionaryParser.jar MANIFEST.MF com/Main.class com/Word.class
这样打包后,Jar根目录下会直接生成com文件夹,类路径结构符合JVM的要求。
方式二:使用-C参数指定根目录
无需切换目录,在原执行路径下使用-C参数(该参数会临时切换到指定目录读取文件):
jar cvfm DictionaryParser.jar bin/MANIFEST.MF -C bin com/Main.class com/Word.class
验证方法
打包完成后,可执行以下命令查看Jar内部结构,确认com文件夹位于根目录:
jar tf DictionaryParser.jar
正常输出应包含:
META-INF/ META-INF/MANIFEST.MF com/ com/Main.class com/Word.class
内容的提问来源于stack exchange,提问作者DKrazy
相关产品推荐
相关产品推荐

