java - 无法在Java Applet中实现play方法,JMF安装不正确

标签 java eclipse applet awt jmf

我是 Java Applets 新手。我安装了 JMStudio 并在项目中添加了所有 .jar 文件,但仍然无法工作。

我已在“项目”>“属性”>“Java 构建路径”>“库”中安装了 .jar 文件

这是我的程序:

import java.applet.*;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class design extends Applet implements ActionListener
{
    Button play,stop;
    AudioClip audioClip;
    public void init(){
      play = new Button("  Play in Loop  ");
      add(play);
      play.addActionListener(this);
      stop = new Button("  Stop  ");
      add(stop);
      stop.addActionListener(this);
      audioClip = getAudioClip(getCodeBase(), "About Time.mid");
   }

@Override
public void actionPerformed(ActionEvent ae) {
    Button source = (Button)ae.getSource();
      if (source.getLabel() == "  Play in Loop  "){
         audioClip.play();
      }  
      else if(source.getLabel() == "  Stop  "){
         audioClip.stop();
      }
   }

}

这是错误

java.lang.IllegalAccessError: tried to access class com.sun.media.sound.Printer from class com.sun.media.sound.HeadspaceSoundbank
at com.sun.media.sound.HeadspaceSoundbank.<init>(HeadspaceSoundbank.java:81)
at com.sun.media.sound.HsbParser.getSoundbank(HsbParser.java:69)
at javax.sound.midi.MidiSystem.getSoundbank(MidiSystem.java:535)
at com.sun.media.sound.SoftSynthesizer.getDefaultSoundbank(SoftSynthesizer.java:711)
at com.sun.media.sound.SoftSynthesizer.openStream(SoftSynthesizer.java:1150)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:73)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:145)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)
at com.sun.media.sound.JavaSoundAudioClip.<init>(JavaSoundAudioClip.java:102)
at sun.applet.AppletAudioClip.createAppletAudioClip(AppletAudioClip.java:125)
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:66)
at sun.applet.AppletViewer.getAudioClip(AppletViewer.java:383)
at java.applet.Applet.getAudioClip(Applet.java:329)
at java.applet.Applet.getAudioClip(Applet.java:349)
at com.design.init(design.java:20)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:745)

我猜问题可能出在 JMF 的安装上......但我不知道到底错在哪里。

请谁告诉一下在eclipse中运行JMF的确切方法。

最佳答案

似乎存在库冲突。确保在 eclipse 的构建路径中没有不同版本的库。还可以查看类路径中的其他库。在 eclipse 或其他 ide 中运行应用程序时,您可以看到 JVM 使用的 -D 变量和 -classpath。

编辑: 我已经使用 jre 8 从 eclipse 启动了小程序,构建路径中没有任何额外的库。

java_build_path

在 eclipse 中启动小程序后我得到了两个按钮:

Applet image

也许更改 jre 并删除 jmf 库就可以执行小程序。

问候

关于java - 无法在Java Applet中实现play方法,JMF安装不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32185247/

相关文章:

eclipse - 为什么 Eclipse - Tomcat 7 在控制台中以红色显示所有文本

Android SDK 需要 ADT 版本 23 或以上

android - Eclipse Juno 中没有默认建议

java - 如何重新定位小程序查看器窗口?

java - Bobo-Browse 兼容 Lucene 3.0.3 的最高版本是多少?

java - 为什么有人声称 Java 的泛型实现很糟糕?

java - 避免在eclipse中嵌入tomcat

java - 使用数据文件部署 Java 应用程序、Java Applet 和 Android 应用程序的正确方法是什么?

java - 不需要安装的用于视频编码的 xuggler 替代方案?

java - 使用java检查pdf PDF/A-1A时出现iText错误