Java 导入jar文件的内容不起作用
很抱歉提出了一个非常简单的问题,但这一整天都让我发疯: 我试图创建一个简单的程序,将帮助我排序到文件夹中的一些jpg文件。我想使用元数据提取器提取照片拍摄的日期() 我的问题是,每当我尝试编译时,它都会说包不存在。我的jar文件与我的测试java文件位于同一目录中,还有我要测试的图片 我在Git Bash中设置了类路径,如下所示:Java 导入jar文件的内容不起作用,java,Java,很抱歉提出了一个非常简单的问题,但这一整天都让我发疯: 我试图创建一个简单的程序,将帮助我排序到文件夹中的一些jpg文件。我想使用元数据提取器提取照片拍摄的日期() 我的问题是,每当我尝试编译时,它都会说包不存在。我的jar文件与我的测试java文件位于同一目录中,还有我要测试的图片 我在Git Bash中设置了类路径,如下所示: javac -cp "metadata-extractor-2.6.4.jar:." PictureSort.java 除了(几个简单的)代码行: import j
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中,因此我在第二行中使用了前面提到的导入语句
但是。。。
我收到以下错误:
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
位于包com.drew.metadata
也就是说,您似乎有一个源jar,而不是编译的类:
javac-cp“metadata-extractor-2.6.4-src.jar:”PictureSort.java
您需要下载包含已编译类的.jar
。您似乎可以在此处执行此操作:
下载.zip
,解压缩它,获得.jar
完成后,您的导入将是:
import com.drew.metadata.Metadata;
您将通过以下方式进行编译:
javac -cp "metadata-extractor-2.6.4.jar:." PictureSort.java
导入可能是
import com.draw.metadata.metadata
。以-src.jar结尾的jar名称表明这不是包含类文件的二进制文件;仅仅是一个源代码存档。您需要获得二进制库。谢谢您的快速回复,我已经下载了二进制库。它只有com/drew/*所以我在代码和类路径中更改了它,这样它就不再是源代码了。但是问题仍然存在,包“com.drew.metadata”不存在相同的错误?我已经按照这些步骤完全解决了问题。。这里很混乱。