Java a->编译器->错误/警告视图

Java a->编译器->错误/警告视图,java,eclipse,javafx,java-8,Java,Eclipse,Javafx,Java 8,及 “已弃用和受限制的API” 您可以将“禁止引用(访问规则)”设置为忽略 我知道这已经得到了回答,但我发现提议的解决方案很笨拙 我不想安装一个插件来避免我认为是一个无效的错误。 将jfxrt.jar添加为外部jar将起作用,但如果您计划进行导出,则这是一个坏主意,因为jfxrt.jar也将被导出。可能不是你想要的 另一个选项 在“Mars”版本(可能还有更早的版本)中,您可以禁用访问限制错误。在 Java->编译器->错误/警告视图 及 “已弃用和受限制的API” 您可以将“禁止引用(访问规则

“已弃用和受限制的API”

您可以将“禁止引用(访问规则)”设置为忽略


我知道这已经得到了回答,但我发现提议的解决方案很笨拙

我不想安装一个插件来避免我认为是一个无效的错误。
  • 将jfxrt.jar添加为外部jar将起作用,但如果您计划进行导出,则这是一个坏主意,因为jfxrt.jar也将被导出。可能不是你想要的
  • 另一个选项

    在“Mars”版本(可能还有更早的版本)中,您可以禁用访问限制错误。在

    Java->编译器->错误/警告视图

    “已弃用和受限制的API”

    您可以将“禁止引用(访问规则)”设置为忽略


    我将在这里再添加一个答案,以提供我认为最简单的方法。在我的Eclipse设置中,我安装了e(fx)clipse,它提供了一个解决方案,并且提供了许多有用的开发特性,如果您正在编写JavaFX应用程序,您几乎肯定会需要这些特性。这可能是最实际的方法。如果出于某种原因你不想要这个插件,这个答案中列出的解决方案将以最少的其他副作用修复这个问题

    正如在其他答案中指出的那样,Eclipse默认情况下不允许访问jre/lib/ext目录中jar文件中的类,因为这些类不能保证在所有Java平台上都存在。如果您正在编写一个JavaFX8应用程序,则假设您所在的平台上的lib/ext位置有jfxrt.jar

    因此,最简单的修复方法是允许访问这个jar文件中的类(并且只允许访问这个jar文件中的类)。为此,右键单击项目并打开“项目属性”对话框。在左窗格中选择“构建路径”,然后选择“库”选项卡。您将看到一个“JRE系统库”条目。展开该条目,您将看到“访问规则”子条目:

    选择“访问规则”条目并单击“编辑”。单击“添加”

    在“分辨率”下选择“可访问”,在“规则模式”下输入
    javafx/**

    单击“确定”退出所有对话框

    此设置将允许访问从
    javafx.
    开始的任何包中的所有类,但将保留ext文件夹中所有其他类的规则,从这个意义上说,它是“最小的”


    同样,您可能真正想做的是安装e(fx)clipse插件,但据我所知,这是对Eclipse设置的副作用最小的解决方案。

    我将在这里再添加一个答案,以提供我认为最简单的方法。在我的Eclipse设置中,我安装了e(fx)clipse,它提供了一个解决方案,并且提供了许多有用的开发特性,如果您正在编写JavaFX应用程序,您几乎肯定会需要这些特性。这可能是最实际的方法。如果出于某种原因你不想要这个插件,这个答案中列出的解决方案将以最少的其他副作用修复这个问题

    正如在其他答案中指出的那样,Eclipse默认情况下不允许访问jre/lib/ext目录中jar文件中的类,因为这些类不能保证在所有Java平台上都存在。如果您正在编写一个JavaFX8应用程序,则假设您所在的平台上的lib/ext位置有jfxrt.jar

    因此,最简单的修复方法是允许访问这个jar文件中的类(并且只允许访问这个jar文件中的类)。为此,右键单击项目并打开“项目属性”对话框。在左窗格中选择“构建路径”,然后选择“库”选项卡。您将看到一个“JRE系统库”条目。展开该条目,您将看到“访问规则”子条目:

    选择“访问规则”条目并单击“编辑”。单击“添加”

    在“分辨率”下选择“可访问”,在“规则模式”下输入
    javafx/**

    单击“确定”退出所有对话框

    此设置将允许访问从
    javafx.
    开始的任何包中的所有类,但将保留ext文件夹中所有其他类的规则,从这个意义上说,它是“最小的”


    同样,您可能真正想做的是安装e(fx)clipse插件,但据我所知,这是对Eclipse设置的副作用最小的解决方案。

    正如James_D所建议的,我在我的类路径文件中添加了访问规则。我暂时卸载了e(fx)clipse插件,因为它有一个css验证错误(请参阅)

    以下是我在JRE容器的类路径文件中的条目:

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.‌​launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes> 
        <accessrules>
            <accessrule kind="accessible" pattern="javafx/**"/>
            <accessrule kind="accessible" pattern="com/sun/javafx/**"/>
        </accessrules>
    </classpathentry>
    

    正如詹姆斯所建议的那样,我将访问规则添加到我的类路径文件中。我暂时卸载了e(fx)clipse插件,因为它有一个css验证错误(请参阅)

    以下是我在JRE容器的类路径文件中的条目:

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.‌​launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes> 
        <accessrules>
            <accessrule kind="accessible" pattern="javafx/**"/>
            <accessrule kind="accessible" pattern="com/sun/javafx/**"/>
        </accessrules>
    </classpathentry>
    
    
    
    • 转到当前项目的生成路径
    在图书馆下面

    • 选择“JRE系统库”[jdk1.8xxx]”
    • 单击编辑
    • 然后选择“工作区默认JRE(jdk1.8xx)”备用JRE
    • 单击“完成”
    • 单击“确定”

    注意:确保在Eclipse/Preferences(非项目)/Java/Installed JRE中,jdk指向jdk文件夹,而不是JREC:\Program Files\Java\jdk1.8.074

    • 转到当前项目的生成路径
    在图书馆下面

    • 选择“JRE系统库”[jdk1.8xxx]”
    • 单击编辑
    • 然后选择“工作区默认JRE(jdk1.8xx)”