Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法

yizhihongxing

当我们在Eclipse中引入 com.sun.image.codec.jpeg 包时,有可能会出现以下报错:

Access restriction: The type 'JPEGImageEncoder' is not API (restriction on required library ..jre1.8.0_202\lib\rt.jar)

这是因为 com.sun.image.codec.jpeg 包在JDK1.7中被废弃,在JDK1.9中被删除。因此,当我们引入该包时,可能会被Eclipse视为危险操作。

下面是完美解决方法:

  1. 将系统JRE替换为JDK

使用Eclipse时,我们需要配置JRE才能启动和开发Java程序。这时,我们可以将JRE替换为JDK。步骤如下:

1.1 在Eclipse菜单栏中点击“Window” - “Preferences” - “Java” - “Installed JREs”。

1.2 点击“Add”按钮,选择“Standard VM”,点击“Next”。

1.3 在“JRE home”一栏中,选择JDK的安装路径,并点击“Finish”。

1.4 点击“Apply and Close”按钮,使配置生效。

替换完系统JRE后,重新引入 com.sun.image.codec.jpeg 包即可解决报错问题。

  1. 修改Eclipse设置

如果不能替换系统JRE,我们可以通过Eclipse的设置来解决问题。步骤如下:

2.1 在Eclipse菜单栏中点击“Window” - “Preferences” - “Java” - “Compiler” - “Errors/Warnings”。

2.2 在“Deprecated and restricted API”一栏中,将“Forbidden reference (access rules)”项的“Severity”改为“Warning”。

2.3 在Eclipse的项目配置文件中,将禁止访问JDK内部API的限制放宽。具体方法是:

在项目根目录下找到 .settings/org.eclipse.jdt.core.prefs 文件(如果不存在,可以新建文件),添加下列代码并保存:

org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference.disabling=true

修改完上述设置后,重新引入 com.sun.image.codec.jpeg 包即可解决报错问题。

示例一:

首先新建一个Java项目,并在项目中引入 com.sun.image.codec.jpeg 包。然后按照上述步骤1的方法重新配置JRE为JDK1.8,并重新引入 com.sun.image.codec.jpeg 包,即可在项目中成功使用 com.sun.image.codec.jpeg 包的相关类。

示例二:

如果不能替换系统JRE,我们可以按照步骤2的方法进行配置。具体方法是:在Eclipse中新建一个普通Java项目,并在项目中引入 com.sun.image.codec.jpeg 包。然后按照上述步骤2的方法进行配置,即可在项目中成功使用 com.sun.image.codec.jpeg 包的相关类。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • SQL 删除重复记录

    以下是SQL删除重复记录的攻略。 删除完全重复的记录 在SQL中,我们可以使用DISTINCT关键字来去掉重复记录。但是,如果表中有完全重复的记录(即每个字段都相同),那么使用DISTINCT是无效的。这时我们可以使用以下语句来删除这些完全重复的记录: DELETE FROM table_name WHERE (col1,col2,…,coln) IN …

    database 2023年3月27日
    00
  • MySQL分库分表与分区的入门指南

    MySQL分库分表与分区的入门指南 什么是MySQL分库分表与分区 MySQL分库分表是将一个大的数据库拆分成多个小型数据库,每个数据库存储不同的数据,以达到提高性能、降低负载的目的。 MySQL分区是将一个表分割成多个分区,每个分区存储不同的数据,以达到提高查询速度、减少磁盘I/O的目的。 MySQL分库分表的实现方式 垂直分库 垂直分库就是将不同的表拆分…

    database 2023年5月19日
    00
  • php使用PDO下exec()函数查询执行后受影响行数的方法

    使用PDO下的exec()函数可以执行一些不需要准备的SQL语句(如INSERT、DELETE、UPDATE等),并且该函数的返回值一般是受影响的记录数。但是,如果在执行INSERT语句时没有在SQL语句中添加RETURNING子句,那么直接执行exec()函数返回的受影响行数可能是0,这显然不符合预期。因此,需要使用其他方法来获取准确的受影响行数。 以下是…

    database 2023年5月21日
    00
  • Java从数据库中读取Blob对象图片并显示的方法

    让我来详细讲解一下“Java从数据库中读取Blob对象图片并显示的方法”的完整攻略。 1. 从数据库中读取Blob对象图片 在使用Java读取数据库中的Blob对象图片前,我们需要先连接数据库,在连接之后,可以使用以下代码将Blob对象从数据库中读取出来: public byte[] readBlob(ResultSet rs, String columnN…

    database 2023年5月21日
    00
  • MySQL中使用or、in与union all在查询命令下的效率对比

    MySQL中使用or、in与union all在查询命令下的效率对比,是一个非常实用和常见的话题。下面将详细讲解如何比较这三种方式在查询命令下的效率,并给出对应的示例。 1. 使用or方式查询 使用or方式查询是最常见的方式之一。它可以将多个条件以or连接起来,如下所示: SELECT * FROM table WHERE col1=’value1′ OR …

    database 2023年5月22日
    00
  • ssm项目改造spring boot项目完整步骤

    下面我将详细讲解“ssm项目改造spring boot项目完整步骤”的完整攻略。 第一步:项目结构调整 在进行ssm项目改造为spring boot项目之前,需要对项目结构进行调整。具体步骤如下: 删除旧的配置文件,在src/main/resources文件夹下新建application.properties或application.yml配置文件。 针对旧…

    database 2023年5月21日
    00
  • mybatis中#{}和${}的区别详解

    下面是针对“Mybatis中#{}和${}的区别详解”的完整攻略: 1. #{}和${}的基本概念 在Mybatis中,#{}和${}都是参数占位符,用于将数据传递到SQL语句中。在执行SQL语句时,#{}会将传入的数据以预编译的形式进行处理,而${}则会将传入的数据直接拼接到SQL语句中。 2. #{}和${}的主要区别 2.1. SQL注入问题 在使用$…

    database 2023年5月21日
    00
  • Oracle查询表空间大小及每个表所占空间的大小语句示例

    针对这个问题,我们可以使用以下两步来查询Oracle表空间大小及每个表所占空间大小: 第一步:查询表空间大小 查询表空间大小,需要使用系统视图dba_data_files。该视图包含了Oracle数据库中所有数据文件的信息,数据文件即为存储表空间数据的物理文件。 下面是查询表空间大小的SQL示例: SELECT fs.tablespace_name AS T…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部