我剛剛花了兩個小時閱讀網絡上處處談論這個問題的帖子,但我沒有一個能夠找到我正在尋找的解決方案。Java NoClassFoundDefError和ClassNotFoundException問題
我在Eclipse中創建了一個Java應用程序。我將它導出爲Jar文件,Runnable Jar文件(我嘗試了所有三種選擇:提取所需的庫,打包所需的庫...)和Jar文件在我開發應用程序的Windows 7上都運行良好。
我試着在另一臺有Windows Vista的計算機上使用它。如果我雙擊jar文件,我會收到一條錯誤消息:「找不到主要類:Golf_Calculator。程序將退出。」。 我試着用命令運行它,我得到這個:
C:\Users\Geoffroy\Desktop\Golf Calculator>java Golf_Calculator.jar
Exception in thread "main" java.lang.NoClassDefFoundError: Golf_Calculator/jar
Caused by: java.lang.ClassNotFoundException: Golf_Calculator.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Golf_Calculator.jar. Program will exit.
我真的不知道該怎麼做.. 我的META-INF文件夾是在JAR文件和包含MANIFEST.MF文件與正確的主類名稱。 我讀過這可能是因爲我在我的代碼中導入的類不在主目錄中,但是在使用「提取所需的庫」選項生成Runnable Jar文件時,我認爲它會解決問題。都能跟得上它沒有.. 這裏是我做的進口在我的代碼,可能會給你一個提示:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.Vector;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListModel;
import javax.swing.Box.Filler;
import javax.swing.event.TableModelListener;
import javax.swing.plaf.ComboBoxUI;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
我希望有人在那裏將能幫助我:)
非常感謝!
編輯:我想這一點:Java的罐子Golf_Calculator.jar並得到了這一點:
C:\Users\Geoffroy\Desktop\Golf Calculator>java -jar Golf_Calculator.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: Golf_Calculat
or : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Golf_Calculator. Program will exit.
我剛剛編輯了我的帖子,向您顯示該命令的結果。仍然不行,但謝謝你所有的反應如此之快! – user2154283 2013-03-10 17:56:16
好吧,從來沒有,我更新了Java,現在它可以用這個命令工作。非常感謝!對不起,愚蠢的問題.. – user2154283 2013-03-10 18:02:18
@ user2154283很高興你的問題得到解決。通常,java.lang.UnsupportedClassVersionError是由於編譯期間JDK較高而JDK較低,並且在運行時較低。 – 2013-03-11 05:07:15