项目上遇到一个问题,提交照片需要对颜色模式进行判断需要SRGB格式的才可以。项目中以前也只是对像素大小进行了校验,在历史代码中也没有找到相关的帮助信息。

  在网上找资料有帖子说需要引入metadata-extractor.jar包。引入之后发现提示报错

Exception in thread “main” java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException。

再次进行资料查找发现,metadata-extractor.jar包依赖于xmpcore-5.1.2.jar。引入xmpcore-5.1.2.jar之后,程序仍无法正常运行。于是去git获取源码进行,调试。

发现网上下载的metadata-extractor-2.12.0.jar源码存在问题(可能是本人下载的版本问题),于是修改源码重新打包。

附上本地打包的命令:

进入对应需要打jar的目录,输入命令: jar -cvf lkf.jar *.* (注意空格)

jar 是打jar的命令符;

-cvf 是打jar时的参数,写上就可以;

metadata-extractor.jar 是打成后的jar包名称;

*.* 是指将当前目录所有的文件都打入jar包,也可以输入*.class等。

例子:

现需要将C:\workspace\Auto\target\classes目录下的文件打jar

1.打开cmd,cd C:\workspace\Auto\target\classes进入目录

2.输入命令: jar -cvf lkf.jar *.*或是jar -cvf metadata-extractor.jar *

3.C:\workspace\Auto\target\classes目录下metadata-extractor.jar

将打好的包重新引入项目。编译,调试成功。

 

感谢几位博主的资料:

1、https://blog.csdn.net/vendrin/article/details/62236576。让我知道使用metadata-extractor.jar去获取照片所有详细信息。

2、https://www.o6c.com/java/2017/07/16/1029.html 。帮我解决了java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException。

3、https://drewnoakes.com/code/exif/。提供源代码的博主。

 

版权声明:本文为jsqy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jsqy/p/11768099.html