我只花了两个小时阅读互联网上到处讨论这个问题的帖子,但我没有一个能提供我正在寻找的解决方案的帖子。
我在 Eclipse 中创建了一个 Java 应用程序。我将它导出为 Jar 文件、可运行的 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 文件。我读到这可能是因为我在代码中导入的类不在主目录中,但是当使用 Eclipse 生成可运行 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 -jar 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.