我试图在使用JavaMail API的命令行上运行程序。该程序还读取来自文本文件的消息。不过,我得到这个错误:使用jar和文本文件输入运行java文件
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Address
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: javax.mail.Address
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
原来我用java命令/path/to/mail.jar mailTest < message.txt
我配置成功的jar classpath中(远我所知)。任何人都可以给我一些指点吗? :/
我已检查过,并且看起来没有另一个依赖关系。现在看来,我的类路径似乎是错误的,但感谢您的帮助!对此,我真的非常感激! –
你在正确的道路上,你从类路径中缺少这个jar,正如我在文章中提到的那样,你有两种直接处理方式:创建清单文件或在命令行中包含依赖项。 – Adonis
对不起,这可能是一个愚蠢的问题,但我检查了我的javax.mail.jar和Address类在那里。我试图寻找另一个jar依赖项,但我找不到任何东西,所以我认为jar无法找到,因为我的类路径是错误的。那么我怎么才能找到这个缺少的jar?当我尝试查找“javax.mail.Address”时,我的搜索将我指向了手头的原始jar。 –