Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java小程序可以';t在Safari 7(Mac OS X 10.9)下打开文件_Java_Macos_Safari_Applet_Filenotfoundexception - Fatal编程技术网

Java小程序可以';t在Safari 7(Mac OS X 10.9)下打开文件

Java小程序可以';t在Safari 7(Mac OS X 10.9)下打开文件,java,macos,safari,applet,filenotfoundexception,Java,Macos,Safari,Applet,Filenotfoundexception,我们有一个web应用程序,它使用Java小程序来操作本地磁盘上的文件。我们开发它已经有一段时间了,我们已经知道小程序在现代操作系统、浏览器、最新Java版本和新的安全限制方面可能存在的所有类型的问题 昨天,苹果推出了带有新Safari浏览器(7.0)的MacOS10.9Mavericks。我在Safari 7/Mac OS X 10.9下测试了我们的web应用程序,结果发现Safari 7(可能?)会阻止从Java小程序访问本地文件 尽管小程序(使用有效的Thawte证书签名,并满足Java 7

我们有一个web应用程序,它使用Java小程序来操作本地磁盘上的文件。我们开发它已经有一段时间了,我们已经知道小程序在现代操作系统、浏览器、最新Java版本和新的安全限制方面可能存在的所有类型的问题

昨天,苹果推出了带有新Safari浏览器(7.0)的MacOS10.9Mavericks。我在Safari 7/Mac OS X 10.9下测试了我们的web应用程序,结果发现Safari 7(可能?)会阻止从Java小程序访问本地文件

尽管小程序(使用有效的Thawte证书签名,并满足Java 7u45特定的所有安全要求)在无限制模式下运行,可完全访问本地文件系统(Java安全提示显示),但在尝试访问本地文件时,它会捕获fileNotFoundException:

java.io.FileNotFoundException: /Users/yury/Pictures/Paris 2012/L1050258.jpg (Operation not permitted)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at com.trackntag.a.v.a(Unknown Source)
java.io.FileNotFoundException:/Users/yury/Pictures/Paris 2012/L1050258.jpg(不允许操作)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:146)
在com.trackntag.a.v.a(未知来源)
另外,当从小程序打开Java文件打开对话框时,它不会显示任何文件,文件夹选择器中的文件夹也没有任何图标(通常它们应该有图标)。当遍历回根文件夹时,可以看到顶级文件夹(bin、cores、dev、home等),但无法浏览到它们

小程序确实可以在同一台机器(Java 7u45,Mac OS X 10.9)上使用最新的Firefox 24 for Mac访问本地文件。与Safari 6和Mac OS X 10.8.5相同,更不用说各种配置的Linux和Windows机器:访问本地文件没有问题

综上所述,我必须得出结论,我们遇到了Safari 7特有的问题

你对这个问题有什么想法吗?任何想法都非常感谢

干杯, 尤里

EDIT(Answer):在Safari7中有一个新的安全设置:Safe/Unsafe模式(我认为它仅适用于Java插件)。您可以允许Java插件在不安全模式下为单个网站或所有网站工作。在不安全模式下,小程序可以不受限制地访问本地文件系统。

这个安全设置似乎在Java自身的安全设置(受限/非受限访问)之上工作

此设置可通过Safari首选项/安全选项卡/Internet插件获得:管理网站设置(然后选择Java插件)

所以,一旦我已经回答了我自己的原始问题,我宁愿重新措辞:是否可以为特定网站/URL设置不安全模式或覆盖安全模式,而不要求用户设置此安全首选项?也许苹果开发者证书之类的东西会有所帮助


再次感谢

今天我在另一个Java应用程序中遇到了类似的问题。我认为您可能需要将您的应用程序添加到此对话框中的“允许下面的应用程序…”列表(
System-Prefs->Security&Privacy->Accessibility
):

对于Safari 11:

  • 转到Safari首选项->网站->插件,然后选择Java
  • 在右侧,您可以看到“允许网站使用此插件”列表 设置如下'
  • 现在选择网站
  • 按住选项按钮,然后单击三个选项(Ask、Off、On),您将看到附加选项“在安全模式下运行”-取消选中此选项

  • 谢谢你,这是个好主意,你肯定会这么看的。顺便说一句,在我的例子中,原因是Safari 7特有的新安全设置(我用更多细节更新了我原来的问题)。但是,如果您的方法可行,它可能会覆盖该设置,而无需用户手动更改该安全设置。好的-我想我可能对这个问题有点误解,但希望这些信息将来可能对其他人有用。OSX 10.8.5上的Safari 6.1.1也会出现类似问题。在这种情况下,如果没有“不安全模式”设置,它将无法执行()。非常感谢您发布修复!太棒了,你的编辑评论帮我修正了。谢谢你做腿部的工作。