私はオンラインクラスを受講していますが、クラスがセミウィンドウ中心であるためにハングアップすることがあります。現在、オーディオクリップを再生しようとしているJavaアプレットがあります。私はIdeaIntellijを使用しており、クラスファイルと同じ場所にオーディオファイルを配置しました。アプレットの実行にアイデアが使用するポリシーファイルも更新しましたが、何をしてもオーディオファイルが見つからないようです。ポリシーファイル(argh!)で理解できなかったものだと、75%確信していますが、それが何であるかはわかりません。コードスニペット、ポリシーファイル、および実行しようとしたときの出力を貼り付けます。助けてください-Linux固有の違いのために私が立ち往生しているのはこれが2回目です。
フォーマットの問題についてお詫びします...
public class MyApplet extends JApplet implements ActionListener
{
JButton play, stop;
AudioClip audioClip;
File myAudioFile;
public void init()
{
play = new JButton("Play");
play.addActionListener(this);
stop = new JButton("Stop");
stop.addActionListener(this
[...took out unnecessary stuff...]
System.out.println("Codebase is: " + getCodeBase());
myAudioFile = new File(getCodeBase().toString()+"desktop-login.ogg");
if(myAudioFile.exists()) {
audioClip = getAudioClip(getCodeBase(), "desktop-login.ogg");
}
else {
System.out.println("Failed to find file:"+ audioClip);
}
}
[...took out unnecessary stuff...]
//------------------POLICY FILE CONTENTS--
grant {
permission java.security.AllPermission;
permission java.net.SocketPermission "*", "accept, connect, listen, resolve";
};
grant codeBase "file:/home/mylogin/IdeaProjects/3RD/Lesson7/soundPlay/out/production/soundPlay/*" {
permission java.util.PropertyPermission "user.home", "read";
};
//--------output (scrubbed a bit - it's failing at the audio clip play part because the audioClip object is null):
Codebase is: file:/home/mylogin/IdeaProjects/3RD/Lesson7/soundPlay/out/production/soundPlay/
Failed to find file:null
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at MyApplet.actionPerformed(MyApplet.java:48)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)