转自:http://www.cdtarena.com/javapx/201307/9115.html

  Apple为了在系统安全方面得到更好的声誉,对更容易造成系统漏洞的Java进行着严格的控制,并在自己发明的安全更新(之一不是软件更新)中在用户毫无察觉的情况下自动地隐秘地禁止Java的运行,当然了该安全更新的功能可以用来禁止任何它认为有问题的软件运行,或者是对有问题的网页/网站的访问等等,而且它是在用户毫无知觉的情况下自动更新隐蔽运行的,当一个软件被禁止运行时,也没有任何的有效的提示,至少告诉用户是以什么原因该软件被禁止运行的吧!由于Java被禁止运行之后,最终用户在不知情的情况下,在Safari浏览器中一下子就无法再使用Java了,而且没有原因解释,没有一点提示的情况下,用户就无法使用原本可以使用的软件,用户遇到这样的问题迷茫的很。一个系统就是让用户用的,那么既然你们哪样自负这样武断地禁止用户使用,还不如让用户砸了电脑,岂不是更加彻底?!Apple的这种武断行为,完全违背了它在iOS设备中所提倡的个人体验的理念,难道说这个理念不是贯穿于所有苹果产品的嘛?亦或是Apple的理念也升级了呢?
  Apple如何做到的?
  它在系统中内置了一个安全更新功能,E文描述是Automaticallyupdate safe downloads list,内部叫XProtect,这个东东是OS系统的一个daemon守护进程,相当于Win的服务程序,它自动从Apple的网站上下载这个安全下载列表,并更新客户系统上的,即时更新即时生效,也就是说,一旦被更新,刚才前还可以的,就莫名其妙地不能用了。http://www.cdtarena.com/ruanj.html
  你来自救:
  合法禁止:
  最简单的就是使用系统提供的功能禁止它,进入系统偏好->安全和隐私,打开小锁后,进入高级,取消对Automatically update safe downloads list的选择,见下图:
 
  命令行:
  那就让Launchd来管理它,命令:
  [html]
  launchctl unload -w /System/Library/LaunchDaemons/com.apple.xprotectupdater.plist
  删除限制:
  如果只想临时去除该限制并保持更新自动运行,以保证系统的安全的同时,也使用户可以临时使用Java,那么:
  [python]
  sudo /usr/libexec/PlistBuddy -c "Delete :JavaWebComponentVersionMinimum" /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist
  好吧,让我们理解一下:
  Apple之所以禁用Java也不是没有道理,这两次都是因为Java的某个版本被发现并被确认存在危险漏洞,从而造成对客户系统的危害。
  上面的提供的步骤只是权宜之计,还是尽快更新用户端的Java客户端软件,目前Java已经有了update 13了。
  还有另外一个选择哦,使用FireFox等其他的浏览器,不用Safari,其他的可能仅仅是提示一下并准许用户继续使用。

Apple严控Java太不人性化的更多相关文章

  1. 如何写好、管好单元测试?基于Roslyn+CI分析单元测试,严控产品提测质量

    上一篇文章中,我们谈到了通过Roslyn进行代码分析,通过自定义代码扫描规则,将有问题的代码.不符合编码规则的代码扫描出来,禁止签入,提升团队的代码质量. .NET Core技术研究-通过Roslyn ...

  2. java太low,又舍不得jvm平台的丰富资源?试试kotlin吧(一)

    尝试kotlin的起因 因为各种原因(版权,人员招聘),公司的技术体系从c#转到了java,我花了大概两周的时间来上手java,发现java的语法还是非常简单的,基本看着代码就知道什么意思.学习jav ...

  3. HDU 6206 Apple (高精确度+JAVA BigDecimal)

    Problem Description Apple is Taotao's favourite fruit. In his backyard, there are three apple trees ...

  4. winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法。

    protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle ...

  5. 文字太多?控件太小?试试 TextView 的新特性 Autosizeing 吧!

    Hi,大家好,我是承香墨影! Android 8.0 已经发布了有一阵子了,如果你有在关注它,你应该会知道它新增了一个对于 TextView 字体大小变动的新特性:Autosizing. 本身这个新特 ...

  6. 点评阿里JAVA手册之编程规约(OOP 规约 、集合处理 、并发处理 、其他)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为三星(★★★) 本文为第二篇 第一篇 点评阿里JAVA手 ...

  7. 阿里巴巴Java开发手册———个人追加的见解和补充(一)

    先上干货,<阿里巴巴Java开发手册>的下载地址 https://yq.aliyun.com/articles/69327?spm=5176.100239.blogcont69327.15 ...

  8. 阿里巴巴Java开发手册评述

    2016年底的时候阿里巴巴公开了其在内部使用的Java编程规范.随后进行了几次版本修订,目前的版本为v1.0.2版.下载地址可以在其官方社区-云栖社区https://yq.aliyun.com/art ...

  9. 阿里巴巴Java开发手册快速学习

    Java作为一门名副其实的工业级语言,语法友好,学习简单,大规模的应用给代码质量的管控带来了困难,特别是团队开发中,开发过程中的规范会直接影响最终项目的稳定性. 善医者“未有形而除之”,提高工程健壮性 ...

随机推荐

  1. r语言之给定的概率密度函数生成随机数

    假设概率密度函数为: 思路: 首先产生-1到1之间的均匀分布随机数x,和0到1之间的均匀分布随机数y. 如果y<f(x),则x是符合该概率密度的随机数,否则,重复上述操作. 用r语言生成100个 ...

  2. 如何优化你的JS脚本来减少reflow/repaint?

    如何优化你的脚本来减少reflow/repaint?1. 避免在document上直接进行频繁的DOM操作,如果确实需要可以采用off-document的方式进行,具体的方法包括但不完全包括以下几种: ...

  3. cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap(三)-按键处理

    在地图初始化好了之后,就开始移动马里奥吧,我在windows下,是使用键盘来移动马里奥的 w是跳,d是前进,a是后退,那么在程序里是怎么来获取这个按键的呢? 普通的windows程序,在按键之后,会有 ...

  4. Part Acquisition(spfa输出路径)

    Part Acquisition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4080   Accepted: 1742 ...

  5. SqlServer和Oracle中一些常用的sql语句10 特殊应用

    --482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty ...

  6. 记录一次SQL查询语句

    以前发现比较经典的句子,都是记录在电脑上,我今天想搬到博客上,在我看来,写博客真的是一件非常头疼的事,它是内心的一道坎,我必须得跨过它. CREATE TABLE t_jeff ( id int NO ...

  7. 什么是CALayer

    一.什么是CALayer * 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. * 其实UIView之所以 ...

  8. Dispatcher & Redirect

    首先理解一下二者的含义:Dispatcher请求转发,直接把客户端的请求在服务器处理以后跳转到下一个页面或者是处理类.此时的地址栏上的URL是不会变化的. Redirect是重定向.客户端的请求到达服 ...

  9. JVM -- 类的初始化

    <深入理解Java虚拟机> 第二版中介绍到了类的加载过程. 一个类从加载入内存到卸载出内存为止,整个生命周期包括: Loading(加载)-----Verification(验证)---- ...

  10. POJ 1458 最长公共子序列 LCS

    经典的最长公共子序列问题. 状态转移方程为 : if(x[i] == Y[j]) dp[i, j] = dp[i - 1, j - 1] +1 else dp[i, j] = max(dp[i - 1 ...