gpt4 book ai didi

Java 找不到类

转载 作者:行者123 更新时间:2023-11-29 06:59:04 25 4
gpt4 key购买 nike

我已经创建了一个 list 文件:

Manifest-Version: 1.0
Main-Class: DICOMValidate.menu
Class-Path: lib/log4j-1.2.16.jar lib/sl4j-api-1.6.4jar lib/sl4j-log4j12-1.6.4.jar lib/dcm4che-audit-2.0.25.jar lib/dcm4che-core-2.0.25.jar lib/dcm4che-image-2.0.25.jar lib/dcm4che-imageio-2.0.25.jar lib/dcm4che-iod-2.0.25.jar lib/dcm4che-net-2.0.2h.jar

当我尝试在目录中的 Windows 命令提示符中运行文件时:C:\temp\workspace\DICOMVALIDATE>java -jar DICOMValidate.jar,我收到此错误:

   View DICOM tags
Enter DICOM File Path Name:
C:/Ryan.dcm
Enter Tag list:
C:/testing.txt
Exception in thread "main" java.lang.NoClassDefFoundError: org/dcm4che2/io/DicomInputStream
at DicomValidator.viewDICOMTags.readDICOMObject(viewDICOMTags.java:40)
at DicomValidator.menu.showMenu(menu.java:46)
at DicomValidator.menu.main(menu.java:14)
Caused by: java.lang.ClassNotFoundException: org.dcm4che2.io.DicomInputStream
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
... 3 more

这应该访问 dcm4che-core-2.0.25.jar 中的 DicomInputStream。我不知道为什么它没有访问那个类,因为我已经尝试了很多次并且仍然得到相同的结果(尽管我已经确保拼写和一切都是正确的)。有人可以帮我弄清楚为什么无法访问此 .jar 吗?

更新: 我已经按照您的建议进行了所有更改,但仍然遇到同样的错误:

Please Enter:
1 to View DICOM Tags
2 to Add DICOM Tags
3 to Edit DICOM Tags
4 to exit
1
View DICOM tags
Enter DICOM File Path Name:
IM-0009-0001.dcm
Enter Tag list:
tags.txt
Exception in thread "main" java.lang.NoClassDefFoundError: org/dcm4che2/io/DicomInputStream
at DicomValidator.viewDICOMTags.readDICOMObject(viewDICOMTags.java:40)
at DicomValidator.menu.showMenu(menu.java:45)
at DicomValidator.menu.main(menu.java:14)
Caused by: java.lang.ClassNotFoundException: org.dcm4che2.io.DicomInputStream
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
... 3 more

谁能帮我弄清楚为什么它不能识别 DicomInputStream?????

最佳答案

您的 Class-Path 条目中有错字。你有 lib/slfj-api-1.6.4jar 但它应该是 lib/slf4j-api-1.6.4.jar。您还指定了 lib/log4j-1.2.16.jar,但至少需要一个依赖项 log4j-1.2.17.jar。错误消息“The archive:/DICOMVALIDATE/lib/log4j-1.2.17.jar which is referenced by the classpath, does not exist”是一个很好的提示。

一般而言,请确保您在类路径中拥有所有需要的 JAR 文件及其依赖项等。否则,即使类本身存在但依赖项不存在,您也可能会得到 ClassNotFoundException。我衷心推荐使用具有依赖管理技能的构建系统,例如 Maven 或 Gradle,以更轻松地让所有鸭子保持一致。 Maven 会为您生成 list ,因此您无需手动执行。

关于Java 找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com