使用JLayer库并在命令提示符

时间:2015-06-27 21:52:07

标签: java intellij-idea

我正在使用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变量存在问题,但我不知道使用它。

1 个答案:

答案 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