当前位置: 首页 > 知识库问答 >
问题:

元数据提取器的示例代码正在生成“NoClassDefFoundError”

孟树
2023-03-14

我正在尝试从java应用程序中的图片文件中提取纬度和经度。我在IDE中使用intellij。我发现这个图书馆看起来很完美:https://search.maven.org/artifact/com.drewnoakes/metadata-extractor/2.14.0/jar我尝试了在中找到的示例代码https://github.com/drewnoakes/metadata-extractor/blob/master/Samples/com/drew/metadata/SampleUsage.java

我将jar复制到我的项目目录,然后将其添加为目录。我将示例代码复制并粘贴到一个类中。

我立即发现错误,无法识别类“Metadata”,因此我为com添加了一个导入行。画。元数据。*这样就消除了这些错误。

现在,当我尝试运行代码时,我收到了一系列NoClassDefFoundError错误并被卡住了。

编码到引发错误的最后一行:

import com.drew.imaging.ImageMetadataReader;
import com.drew.imaging.ImageProcessingException;
import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.imaging.jpeg.JpegProcessingException;
import com.drew.imaging.jpeg.JpegSegmentMetadataReader;
import com.drew.metadata.exif.ExifReader;
import com.drew.metadata.iptc.IptcReader;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

// fran added this one
import com.drew.metadata.*;


public class ExtractLatLng {
    public static void extract()
    {
        String fileAndPath = "C:/Users/Franc/Documents/$$Fran/misc/_online Ed/Picture Renaming/PhotoRenaming0903/IMG_5408.jpg";
        File file = new File(fileAndPath);

        // There are multiple ways to get a Metadata object for a file

        //
        // SCENARIO 1: UNKNOWN FILE TYPE
        //
        // This is the most generic approach.  It will transparently determine the file type and invoke the appropriate
        // readers.  In most cases, this is the most appropriate usage.  This will handle JPEG, TIFF, GIF, BMP and RAW
        // (CRW/CR2/NEF/RW2/ORF) files and extract whatever metadata is available and understood.
        //
        try {
            Metadata metadata = ImageMetadataReader.readMetadata(file);

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/adobe/internal/xmp/XMPException
at com.drew.imaging.jpeg.JpegMetadataReader.<clinit>(JpegMetadataReader.java:57)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:146)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:124)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:204)
at PR0903.ExtractLatLng.extract(ExtractLatLng.java:35)
at PR0903.Main.main(Main.java:6)

P、 我完全是个菜鸟。感谢您的帮助,包括提出此问题的更好方式/地点。

共有1个答案

巫马令
2023-03-14

我把它整理好了。显然,我还需要包括和xmpcore库,这些库在元数据提取器下载站点中不可用或不包含。我四处搜索,找到了一个可以下载的。将其作为库包含在我的项目中,现在可以使用了。

 类似资料:
  • 使用 Dreamweaver 的代码提示和代码完成功能,最大限度缩短编码时间。 Dreamweaver 的智能代码完成或代码提示功能通过减少拼写和其他常见错误,使您可以快速插入和编辑代码。 您也可以使用此功能查看: 标签的可用属性, 函数的可用参数,或 对象的可用方法。 受支持的语言和技术 Dreamweaver 支持下列语言和技术的代码提示: HTML CSS JavaScript  PHP 阅

  • 本文向大家介绍JQuery获取表格数据示例代码,包括了JQuery获取表格数据示例代码的使用技巧和注意事项,需要的朋友参考一下 有这样一个表格:   点击删除执行保存,需要执行onclick事件SaveItem("<%#Eval("ID")>",this); 在JS中

  • 本文向大家介绍vue生成随机验证码的示例代码,包括了vue生成随机验证码的示例代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍了vue生成随机验证码的示例代码,分享给大家,具体如下: 样式自调,最终效果如图: 实现效果: 点击右边input框会自动切换,如果输入的值与字不同,则清空换一串随机数 HTML JS 友情提示:本文直接从项目拿来供大家思路参考,验证提示那块大家可根据自己情况做更改。

  • 本文向大家介绍java生成图片验证码的示例代码,包括了java生成图片验证码的示例代码的使用技巧和注意事项,需要的朋友参考一下 给大家分享一款java生成验证码的源码,可设置随机字符串,去掉了几个容易混淆的字符,还可以设置验证码位数,比如4位,6位。当然也可以根据前台验证码的位置大小,设置验证码图片的大小。下边是源码分享,直接看吧,很简单! 创建servlet类 创建工具类 配置 web.xml

  • Jboot 内置了一个简易的代码生成器,可以用来生成model层和Service层的基础代码,在生成代码之前,请先配置jboot.properties关于数据库相关的配置信息,Jboot 代码生成器会通过该配置去链接数据库。 jboot.datasource.type=mysql jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo

  • 遵照此规范,在实际操作中,有许多重复。接下来推荐一款专为本规范量身定做的代码生成器 Laravel 5.x Scaffold Generator。 本扩展支持 5.1 ~ 5.5 版本的 Laravel。 只需要一个命令: 即可生成: $ php artisan make:scaffold Projects --schema="name:string:index,description:text: