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

带有Jaudiotagger、NoClassDefFoundError的Jar文件

吕皓
2023-03-14

我使用库Jaudiotagger创建了一个java类,它运行起来没有问题。然后我用它做了一个罐子,得到了noclassdefounderror。事情是这样的:

javac -cp .;jaudiotagger-2.0.3.jar id3tag.java
java -cp .;jaudiotagger-2.0.3.jar id3tag

然后创建了清单和jar文件。

echo Main-Class: id3tag >manifest.txt
jar cvfm id3tag.jar manifest.txt id3tag.class jaudiotagger-2.0.3.jar

我得到了以下输出:

added manifest
adding: id3tag.class(in = 5952) (out= 2997)(deflated 49%)
adding: jaudiotagger-2.0.3.jar(in = 811441) (out= 740599)(deflated 8%)

然后我运行jar文件,得到“A Java Exception has currence.”。我也试过:

java -jar id3tag.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaudiotagger/tag/
FieldDataInvalidException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
        at java.lang.Class.getMethod0(Class.java:2694)
        at java.lang.Class.getMethod(Class.java:1622)
        at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)

Caused by: java.lang.ClassNotFoundException: org.jaudiotagger.tag.FieldDataInval
idException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 6 more
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaudiotagger/audi
o/AudioFileIO
        at id3tag.tagSong(id3tag.java:112)
        at id3tag.tagAlbum(id3tag.java:82)
        at id3tag.tagArtist(id3tag.java:40)
        at id3tag.main(id3tag.java:170)
Caused by: java.lang.ClassNotFoundException: org.jaudiotagger.audio.AudioFileIO
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        ... 4 more

我使用的是Windows8和最新的java(1.7.0_17)。

共有1个答案

孔运良
2023-03-14

这是通知您没有主类,因为您可能知道也可能不知道几乎所有非基于web的编程语言中的所有程序都必须有一个主类来启动。在java中,它看起来像这样

public static int main(String[]args){

}

请再次尝试下载库,并为java ee开发人员下载eclipse ide。这个ide有一个内置的编译器,有时会比命令行工作得更好。

我希望这有帮助。

 类似资料:
  • 问题内容: 我目前有一个总是返回的。我已经读到ADT可能有问题,但是我不确定,因此是我的问题。我已经从Android示例下的ActionBar示例中导入了 我已将ActionBarCompat项目标记为“项目”->“属性”下的库,但是仍然出现错误。 重申: 是否还有其他人遇到过类似的错误并可能找到了解决方案? 提前致谢。 问题答案: 最终改为使用ActionBarSherlock,并在“项目属性”

  • 问题内容: 我正在开发一个程序,可加载mp3文件的歌曲数据。我正在尝试导入JAudioTagger以帮助加载歌曲信息。JAudioTagger是一个.jar文件。我进入了导入窗口,但是遇到了很多不确定的导入选项。看来有三个选择可行。EJB JAR文件,Java EE Utility Jar或App Client JAR文件。我不确定这些选项是否正确。 有人知道如何导入罐子吗?我正在为Web开发人员

  • Jaudiotagger是用于音频元标记的Java API。通用API和特定于格式的API均可用,当前支持以下方面的元数据读写: Mp3 Flac OggVorbis Mp4 Aiff Wav Wma Dsf  

  • 我下载了以下链接: http://www.java2s.com/Code/JarDownload/java/java-json.jar.zip 然后,我将jar添加到构建路径:右键单击项目 我能够使用java-json库而不会出现任何错误。然而,当我将项目导出到一个jar时,没有选项将java-json引用库作为jar的一部分。所以我假设通过将库添加到构建路径,我不必导出外部罐(无论如何也没有选项

  • 现在,当我运行和时,一切都很好,但是当我尝试运行项目时(在build/libs/中运行构建的jar和在IntelliJ中运行velotest类时也是如此),我会得到以下错误: 线程“main”java.lang.noClassDefFounderror:org/apache/commons/collections/extendedProperties 在org.apache.velocity.ru

  • 我正在尝试通过Netbeans创建一个jar文件,我可以使用Clean&Build选项,一个新的jar文件将在我的项目目录中创建。但是,我需要为家庭作业提交这些jar文件,并且这些文件中需要有.Java源文件,而不是.class文件。我的同学一般都用eclipse没有问题,但我一直没能在NetBeans中找到解决方案。 我正在使用Netbeans 8.2和Java 1.8.0_161。 如有任何帮