无法在Java小程序中实现播放方法,JMF安装不正确

无法在Java小程序中实现播放方法,JMF安装不正确,java,eclipse,applet,awt,jmf,Java,Eclipse,Applet,Awt,Jmf,我是Java小程序的新手。我安装了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 d

我是Java小程序的新手。我安装了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)
java.lang.IllegalAccessError:试图从com.sun.media.sound.HeadspaceSoundbank类访问com.sun.media.sound.Printer类
位于com.sun.media.sound.HeadspaceSoundbank。(HeadspaceSoundbank.java:81)
位于com.sun.media.sound.HsbParser.getSoundbank(HsbParser.java:69)
位于javax.sound.midi.MidiSystem.getSoundbank(MidiSystem.java:535)
在com.sun.media.sound.SoftSynthesizer.getDefaultSoundbank(SoftSynthesizer.java:711)上
位于com.sun.media.sound.SoftSynthesizer.openStream(SoftSynthesizer.java:1150)
在com.sun.media.sound.softmidiaAudioFileReader.getAudioInputStream(softmidiaAudioFileReader.java:73)上
位于com.sun.media.sound.softmidiaAudioFileReader.getAudioInputStream(softmidiaAudioFileReader.java:145)
位于javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)
请访问com.sun.media.sound.JavaSoundAudioClip。(JavaSoundAudioClip.java:102)
在sun.applet.AppletAudioClip.createAppletAudioClip(AppletAudioClip.java:125)中
applet.AppletAudioClip.(AppletAudioClip.java:66)
位于sun.applet.AppletViewer.getAudioClip(AppletViewer.java:383)
位于java.applet.applet.getAudioClip(applet.java:329)
位于java.applet.applet.getAudioClip(applet.java:349)
位于com.design.init(design.java:20)
运行(AppletPanel.java:434)
运行(Thread.java:745)
我想问题可能出在JMF的安装上……但我不知道我到底错在哪里


请告诉某人在eclipse中运行JMF的确切方法。

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

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

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

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


“问候”

似乎是一种图书馆冲突。确保在eclipse的buildpath中没有不同版本的库。再看看类路径中的其他库。在eclipse或其他ide中运行应用程序时,可以看到JVM使用的-D变量和-classpath

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

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

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

关于

1)为什么要编写小程序?如果是老师指定的,请参考。2) 为什么要使用AWT?请参阅,了解放弃AWT使用组件而支持Swing的许多好理由。3) 播放MIDI文件不需要JMF。从Java1.3开始就可以做到这一点!1) 为什么要编写小程序?如果是老师指定的,请参考。2) 为什么要使用AWT?请参阅,了解放弃AWT使用组件而支持Swing的许多好理由。3) 播放MIDI文件不需要JMF。从Java1.3开始就可以做到这一点!