我正在使用JavaZOOM JLayer库,我构建了一个播放音乐的小程序。这是代码:
import javazoom.jl.player.Player;
import java.io.FileInputStream;
public class Test {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream(/*SONG PATH*/);
Player player = new Player(fis); //<-- Here is the problem
player.play();
} catch(Exception e){
}
}
}
当我使用Intellij IDEA(我可以听到音乐)时代码有效,但是当我尝试在命令提示符下运行时,它会抛出以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javazoom/jl/player/Player
at Test.main<Test.java:9>
Caused by: java.lang.ClassNotFoundException: javazoom.jl.player.Player
at java.net.URLClassLoader.findClass<Unknown Source>
at java.lang.ClassLoader.loadClass<Unkonwn Source>
at sun.misc.Launcer$AppClassLoader.loadClass<Unknown Source>
at java.lang.ClassLoader.loadClass<Unknown Source>
... 1 more
我是新用的外部库,所以我不知道是什么问题...
P.S。我认为CLASSPATH
变量存在问题,但我不知道使用它。
答案 0 :(得分:0)
使用javac
命令行编译代码时,可以将-classpath
选项设置为外部库的位置。
所以你可以做javac -classpath location\of\library class_to_compile
之类的事情。
Oracle关于该主题的文档非常有用:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html