0

我写了一个 mp3 播放器,在桌面模式(jar 文件)下工作正常。但是当我尝试通过网络运行它时,会抛出一个 AccessControlException。

我对按钮图形也有同样的问题,我通过将图形上传到图像服务器来解决它。显然我不想对歌曲做同样的事情。我希望任何用户都可以使用 FileChooser 播放他们的本地歌曲。

我怎样才能做到这一点?

..................................................... ..................................................... .

更多细节:

AccessControlException 异常发生在这里:

try
{
    // f is a File
    listaCanciones.getItems().add(f.getName());     //adding filename to a ListView (works fine)
    mp3Tmp = new Media(f.toURI().toString());       //creating a Media object
    listaReproduccion.add(new MediaPlayer(mp3Tmp)); //creating MediaPlayer object and adding it to a playlist
}

异常的 toString() 是:

java.security.AccessControlException: access denied ("java.io.FilePermission" "I:\music\song.mp3" "read")
4

1 回答 1

2

如果要从 jnlp 部署的应用程序访问本地文件系统:

  1. 在您的 jnlp 文件中请求适当的权限。
  2. 签署申请。
  3. 用户必须接受对话框提示才能将这些权限授予您的应用程序。

您可以在Java 客户端部署指南中找到更多信息:

注意:不是通过 jnlp 部署的应用程序不会在沙箱中运行,也没有上述要求。

Oracle 提供了代码签名的常见问题解答

于 2014-11-18T22:01:43.433 回答