首先我觉得似懂非懂 我先说下自己的理解
类似tools.jar 在环境变量里添加.;%JAVA_HOME%\lib\tools.jar;
我刚在看一个mp3的程序 需要第三方的接口支持 很多教程说需要加入mp3spi这里的三个jar 分别为jl1.0 mp3spi1.9.4 和tritonus_share 都是jar文件
然后我复制了网上一个程序 貌似也是对的 把这三个文件放在java和编译好的class文件一起 因为环境变量里有"." 应该是指当前文件夹啊 和class一起的啊 因为可以运行啊
程序源码:
------------------------------------
import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.List;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
public class MusicPlayer extends Frame {
boolean isStop = true;// 控制播放线程
boolean hasStop = true;// 播放线程状态
String filepath; // 播放文件目录
String filename; // 播放文件名称
AudioInputStream audioInputStream; // 文件流
AudioFormat audioFormat; // 文件格式
SourceDataLine sourceDataLine; // 输出设备
List list;// 文件列表
Label labelfilepath; // 播放目录显示标签
Label labelfilename; // 播放文件显示标签
public MusicPlayer() {
// 设置窗体属性
setLayout(new BorderLayout());
setTitle("MP3音乐播放器");
setSize(350, 370);
// 建立菜单栏
MenuBar menubar = new MenuBar();
Menu menufile = new Menu("文件");
MenuItem menuopen = new MenuItem("打开", new MenuShortcut(KeyEvent.VK_O));
menufile.add(menuopen);
menufile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
open();
}
});
menubar.add(menufile);
setMenuBar(menubar);
// 文件列表
list = new List(10);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// 双击时处理
if (e.getClickCount() == 2) {
// 播放选中的文件
filename = list.getSelectedItem();
play();
}
}
});
add(list, "Center");
// 信息显示
Panel panel = new Panel(new GridLayout(2, 1));
labelfilepath = new Label("播放目录:");
labelfilename = new Label("播放文件:");
panel.add(labelfilepath);
panel.add(labelfilename);
add(panel, "North");
// 注册窗体关闭事件
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setVisible(true);
}
// 打开
private void open() {
FileDialog dialog = new FileDialog(this, "Open", 0);
dialog.setVisible(true);
filepath = dialog.getDirectory();
if (filepath != null) {
labelfilepath.setText("播放目录:" + filepath);
// 显示文件列表
list.removeAll();
File filedir = new File(filepath);
File[] filelist = filedir.listFiles();
for (File file : filelist) {
String filename = file.getName().toLowerCase();
if (filename.endsWith(".mp3") || filename.endsWith(".wav")) {