繁体   English   中英

导入jar文件的内容不起作用

[英]Importing contents of jar file not working

很抱歉这个非常简单的问题,但这使我整日生气:

我正在尝试创建一个简单的程序,它将帮助我将一些jpg文件排序到文件夹中。 我想使用元数据提取器提取照片的拍摄日期( https://code.google.com/p/metadata-extractor/ )。

我的问题是,每当我尝试编译时,它说软件包不存在。 我的jar文件与我的测试Java文件位于同一目录中,以及我要测试的图片。

我在Git Bash中设置类路径,如下所示:

javac -cp "metadata-extractor-2.6.4.jar:." PictureSort.java

以及(几行简单的)代码行:

import java.io.File;
import com.drew.metadata.Metadata;

class PictureSort
{
    public static void main(String[] args) 
    {
         File file = new File("IMG_1244.JPG");
         Metadata metadata = ImageMetadataReader.readMetadata(file);
    }
}

我已经检查了Jar文件的内容以了解需要的内容,并且metadata.java包含在com / drew / metadata / Metadata中,因此这就是为什么我在第二行使用了import statement的原因。

但是...我收到以下错误:

PictureSort.java:2: error: package com.drew.metadata does not exist
PictureSort.java:9: error: cannot find symbol
     Metadata metadata = ImageMetadataReader.readMetadata(file);
            ^
 symbol:   class Metadata
 location: class PictureSort
 PictureSort.java:9: error: cannot find symbol
     Metadata metadata = ImageMetadataReader.readMetadata(file);
                                ^
 symbol:   variable ImageMetadataReader
 location: class PictureSort
 3 errors

我曾尝试寻找答案,但似乎找不到适合我的解决方案。 谁能指出我在做错事情的正确方向? 我在使用广口瓶方面经验不足。 非常感谢您的帮助。

我相信它是source.com.drew.metadata 原因程序包名称始终以小写字母开头。 我也不认为软件包名称是这样的。 尝试com.drew.metadata

快速查看元数据Javadoc ,您会在顶部看到com.drew.metadata包中的Metadata

也就是说,您似乎有一个 jar,而不是已编译的类:

javac -cp“ metadata-extractor-2.6.4-src.jar:”。 PictureSort.java

您需要下载包含已编译类的.jar 看来您可以从以下位置进行操作: https : //code.google.com/p/metadata-extractor/downloads/detail?name=metadata-extractor-2.6.4.zip

下载.zip ,解压缩,获取.jar

完成此操作后,导入将是:

import com.drew.metadata.Metadata;

您将通过以下方式进行编译:

javac -cp "metadata-extractor-2.6.4.jar:." PictureSort.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM