Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Mac OS X上的Eclipse中使用Java Swing?_Java_Eclipse_Macos_Swing_Configuration - Fatal编程技术网

如何在Mac OS X上的Eclipse中使用Java Swing?

如何在Mac OS X上的Eclipse中使用Java Swing?,java,eclipse,macos,swing,configuration,Java,Eclipse,Macos,Swing,Configuration,我是Mac OS X新手,正在使用10.6.5版。JDK 1.6_u22似乎已预装在系统上。我已经下载了Eclipse3.5.2 如果我创建一个简单的hello world,它可以正常工作,但我不能导入JFrame或使用Swing。我得到的错误消息是: 访问限制:由于对所需库/System/library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/Classes.jar的限制,无法访问JFrame类型 以下是我试用过的简单程序: im

我是Mac OS X新手,正在使用10.6.5版。JDK 1.6_u22似乎已预装在系统上。我已经下载了Eclipse3.5.2

如果我创建一个简单的hello world,它可以正常工作,但我不能导入
JFrame
或使用Swing。我得到的错误消息是:

访问限制:由于对所需库/System/library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/Classes.jar的限制,无法访问JFrame类型

以下是我试用过的简单程序:

import javax.swing.JFrame;

public class Test {

    public static void main(String[] args) {
        new JFrame();
    }
}

如何在Mac OS X上的Eclipse中使用Java Swing?

在Mac OS X 10.5.8、Eclipse 3.4.2和Xcode 3.1.4上,下面的示例使用最新版本的Java 1.5或Java 1.6构建和运行。由于Xcode包含JDK,您使用的是什么版本的MacOSX和Xcode

还要验证Swing项目是否无意中包含了SWT

附录:检查这两个对话框:

Eclipse > Preferences > Java > Build Path
Eclipse > Preferences > Java > Installed JREs
您应该看到对
/System/Library/Frameworks/JavaVM.framework/
的引用

import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;

public class X {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new JPanel() {

            private final int SIZE = 200;
            private final int INSET = 20;

            @Override
            public Dimension getPreferredSize() {
                return new Dimension(SIZE, SIZE);
            }

            @Override
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D) g;

                g2.setColor(Color.blue);
                Line2D line1 = new Line2D.Double(INSET, INSET,
                    getWidth() - INSET, getHeight() - INSET);
                Line2D line2 = new Line2D.Double(getWidth() - INSET,
                    INSET, INSET, getHeight() - INSET);
                g2.setStroke(new BasicStroke(16,
                    BasicStroke.CAP_ROUND,
                    BasicStroke.JOIN_BEVEL));
                g2.draw(line1);
                g2.draw(line2);
            }
        });
        frame.pack();
        frame.setVisible(true);
    }
}

我最好的猜测是,您包含了来自Eclipse for JDK 1.6的运行时JAR文件,但Eclipse正在尝试使用JDK 1.5运行

Eclipse使用依赖于32位二进制文件的SWT。MacOSX上唯一的32位JVM是1.5,这意味着Eclipse必须使用JDK1.5运行。您可以将项目设置为使用1.5运行,并尝试使用1.6 classes.jar


换句话说,验证Eclipse是否使用正确的JVM启动应用程序。

类似于@David:我不明白这个问题对我有什么帮助
JFrame
是JavaSE中的一个标准类。您发布了整个
Test
类了吗?您使用的是空包还是
包javas.swing?@mklhmnn:是的,这是整个程序。如果我使用
package com.example
,我会遇到同样的错误。不幸的是,我无法帮助您使用Eclipse,因为我使用的是真正的Java IDE:IntelliJ如果您尝试从命令行启动它会发生什么?我使用的是Xcode 3.2.5。这台计算机是全新的,我已经更新了所有软件。在
Eclipse>Preferences>Java>installedjres
jvm1.4下,我选择了jvm1.6.0,并创建了一个新项目。现在它开始工作了。谢谢