java - 为什么即使我的程序在 Eclipse 中运行没有异常,我的 .jar 文件也会引发异常?

标签 java eclipse jar executable-jar noclassdeffounderror

我是 Java 新手,正在学习如何将应用程序导出到 .jar 文件。我根据 Eclipse and Java for Total Beginners 中的教程在 Eclipse 中使用一些类制作了一个简单的 Java 应用程序.

当我通过 Run -> Run in Eclipse 运行我的应用程序时,我的应用程序运行时没有异常。但是,当我进入"file"->“导出”并将应用程序导出到 .jar 文件中,然后执行

java myLibrary.jar

在我的 Mac 终端中,我从标准错误中获得此输出。

Exception in thread "main" java.lang.NoClassDefFoundError: myLibrary/jar

Caused by: java.lang.ClassNotFoundException: myLibrary.jar
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

这是什么意思?我怎么会缺课呢?我尝试选中和取消选中要导出的项目。例如,我尝试包含 JUnit 测试,但没有成功。

最佳答案

在终端中转到包含所有类文件的目录。

jar cmf MANIFEST.MF myLibrary.jar *

如果 jar 创建成功,您可以通过以下方式运行它:

java -jar myLibrary.jar

MANIFEST.MF 文件至少应包含:

Main-Class: myLibrary

其中 myLibrary 是包含主函数的类。

关于java - 为什么即使我的程序在 Eclipse 中运行没有异常,我的 .jar 文件也会引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10588313/

相关文章:

java - 如果我使用 Eclipse,为什么还需要 Maven?

java - Selenium Webdriver 无法访问浏览器异常

java - 为 jar 可执行文件创建 Makefile

java - 在 selenium 中无限滚动

java - 使用循环(Java 中)进行数字相乘

java - 包继承树查看器插件用于 eclipse 或 App

android - Eclipse(Android)中的库项目VS引用库

java - 在 Java 程序中包含第三方 jar 文件的最佳做法是什么?

java - 在 Eclipse Neon 中安装 PyDev 时获取 "Unable to make member of class sun.security.ssl.SSLSocketImpl"

java - 在 Google Dataproc Spark 中链接原生 .so