2013-03-10 44 views
2

我剛剛花了兩個小時閱讀網絡上處處談論這個問題的帖子,但我沒有一個能夠找到我正在尋找的解決方案。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. 

回答

3

您沒有運行一個Java文件,這是一個jar文件。使用以下命令運行它。

java -jar Golf_Calculator.jar 
+0

我剛剛編輯了我的帖子,向您顯示該命令的結果。仍然不行,但謝謝你所有的反應如此之快! – user2154283 2013-03-10 17:56:16

+0

好吧,從來沒有,我更新了Java,現在它可以用這個命令工作。非常感謝!對不起,愚蠢的問題.. – user2154283 2013-03-10 18:02:18

+0

@ user2154283很高興你的問題得到解決。通常,java.lang.UnsupportedClassVersionError是由於編譯期間JDK較高而JDK較低,並且在運行時較低。 – 2013-03-11 05:07:15

1

你需要運行它java -jar Golf_Calculator.jar

+0

這就是我得到: C:\用戶\弗魯瓦\桌面\高爾夫計算器> Java的罐子Golf_Calculator.jar 異常線程 「main」 因爲java.lang.UnsupportedClassVersionError:Golf_Calculat 或:不支持major.minor版本51.0 – user2154283 2013-03-10 17:50:44

+0

你的運行時和JDK是不同的版本 – hd1 2013-03-10 17:55:58

+0

非常感謝,我更新了它,現在它工作正常..我想這是一個begginer問題:)再次感謝! – user2154283 2013-03-10 18:06:01