为什么此音频文件在 Windows 中有效,但在 Ubuntu 中无效?
Why does this audio file work in Windows, but not Ubuntu?
我按照以下步骤使用在以下位置找到的音频文件制作了一个 JAR 文件:http://www.orangefreesounds.com/loud-alarm-clock-sound/
- 打开 Eclipse,创建一个新的 Java 项目。
- 下载音频文件,将其放在项目的
src/sound-effects
文件夹中。
- 将下面的代码复制并粘贴到一些名为
Sandbox
的 class 中
- 在
Project Explorer
window(可能在屏幕的左侧)中,右键单击您的项目并单击 Export ...
作为 JAR file
- 运行 它在 Windows 或 Linux 系统的终端中使用
java -jar
.
文件结构应如下所示:
我的电脑上安装了 x64 Windows 8.1
和 x64 Ubuntu 14.04
。我的问题是:为什么这个 JAR 程序在 Windows 而不是 Ubuntu?
import java.io.IOException;
import java.net.URL;
import javax.sound.sampled.*;
public class Sandbox
{
public static void main(String[] args)
throws UnsupportedAudioFileException, IOException,
LineUnavailableException
{
URL url = Sandbox.class
.getResource("/sound-effects/Loud-alarm-clock-sound.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
AudioFormat af = ais.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, af);
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(ais);
clip.start();
System.out.println("Drain...");
clip.drain();
System.out.println("...Drained");
}
}
这里的问题是我在 Ubuntu 系统上安装了 OpenJDK 1.7
(或 IcedTea
),在 Windows 系统上安装了 Oracle JDK 1.8
。如您所知,OpenJDK
只是 Oracle 的 JVM 和编译器的开源版本。遗憾的是,这意味着它存在一些兼容性问题,例如无法播放某些音频文件。
我只是按照此处的说明卸载了 OpenJDK 1.7
:
https://askubuntu.com/questions/335457/how-to-uninstall-openjdk
然后我使用 link:
安装了 Oracle JDK 1.8
http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
现在我的音频文件可以在 Ubuntu 和 Windows 上正常播放了。
我按照以下步骤使用在以下位置找到的音频文件制作了一个 JAR 文件:http://www.orangefreesounds.com/loud-alarm-clock-sound/
- 打开 Eclipse,创建一个新的 Java 项目。
- 下载音频文件,将其放在项目的
src/sound-effects
文件夹中。 - 将下面的代码复制并粘贴到一些名为
Sandbox
的 class 中
- 在
Project Explorer
window(可能在屏幕的左侧)中,右键单击您的项目并单击Export ...
作为JAR file
- 运行 它在 Windows 或 Linux 系统的终端中使用
java -jar
.
文件结构应如下所示:
我的电脑上安装了 x64 Windows 8.1
和 x64 Ubuntu 14.04
。我的问题是:为什么这个 JAR 程序在 Windows 而不是 Ubuntu?
import java.io.IOException;
import java.net.URL;
import javax.sound.sampled.*;
public class Sandbox
{
public static void main(String[] args)
throws UnsupportedAudioFileException, IOException,
LineUnavailableException
{
URL url = Sandbox.class
.getResource("/sound-effects/Loud-alarm-clock-sound.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
AudioFormat af = ais.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, af);
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(ais);
clip.start();
System.out.println("Drain...");
clip.drain();
System.out.println("...Drained");
}
}
这里的问题是我在 Ubuntu 系统上安装了 OpenJDK 1.7
(或 IcedTea
),在 Windows 系统上安装了 Oracle JDK 1.8
。如您所知,OpenJDK
只是 Oracle 的 JVM 和编译器的开源版本。遗憾的是,这意味着它存在一些兼容性问题,例如无法播放某些音频文件。
我只是按照此处的说明卸载了 OpenJDK 1.7
:
https://askubuntu.com/questions/335457/how-to-uninstall-openjdk
然后我使用 link:
安装了 Oracle JDK 1.8
http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
现在我的音频文件可以在 Ubuntu 和 Windows 上正常播放了。