2014-11-18 9 views
0

나는 MP3 플레이어를 작성했으며 데스크톱 모드 (jar 파일)에서 잘 작동합니다. 하지만 웹을 통해 실행하려고하면 AccessControlException이 발생합니다.JavaFX로 로컬 파일을 여는 방법은 무엇입니까?

버튼 그래픽과 동일한 문제가있어서 이미지 서버에 그래픽을 업로드하여 해결했습니다. 분명히 나는 ​​그 노래들과 똑같이하고 싶지 않다. 모든 사용자가 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") 

답변

2

당신이 t를 원하는 경우 o jnlp 배포 된 응용 프로그램에서 로컬 파일 시스템에 액세스하십시오.

  1. jnlp 파일에서 적절한 권한을 요청하십시오.
  2. 응용 프로그램에 서명하십시오.
  3. 사용자는 응용 프로그램에 이러한 사용 권한을 부여하려면 accept a dialog prompt해야합니다.

당신은 Java client deployment guide에서 자세한 정보를 찾을 수 있습니다.

  • 5.6 Sign the JAR Files.
  • jnlp security element -이 도구를 직접 조정할 필요없이 포장 도구를 사용하여 필요한 권한을 지정해야합니다 (예 : javapackager tool의 경우 -allpermissions).
  • 참고 : jnlp를 통해 배포되지 않는 응용 프로그램은 샌드 박스에서 실행되지 않으며 위의 요구 사항이 없습니다.

    오라클은 FAQ for code signing을 제공합니다.