如何用JavaFX打开本地文件?

时间:2014-11-18 21:13:21

标签: javafx javafx-2 jnlp accesscontrolexception

我写了一个mp3播放器,在桌面模式下工作正常(jar文件)。但是当我尝试通过web运行它时,会抛出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")

1 个答案:

答案 0 :(得分:2)

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

  1. 在jnlp文件中请求适当的权限。
  2. 签署申请。
  3. 用户必须accept a dialog prompt才能将这些权限授予您的应用。
  4. 您可以在Java client deployment guide

    中找到更多信息

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

    Oracle提供javapackager tool