Java used to be deeply embedded in OS X, but in recent versions of the OS it's an optional install. Here is how to check to see if it is installed, and how to disable or remove it.

There's some concern over the use of Java in OS X following a recent finding that Flashback malware variantsare now taking advantage of currently unpatched vulnerabilities in the Java runtime.

Even though this malware development should not affect the majority of Macusers running OS X 10.7 or later since Apple no longer includes Java with the OS, some people may nonetheless be wondering what the Java runtime is, and how they can go about checking for and removing it from their systems to ensure they are safe.

What is Java?
The essence of Java is its runtime, which is a software environment that acts like a small operating system for running the compiled code of a specific programming language, and as such is sometimes referred to as a Virtual Machine. Many programming languages require the use of a runtime, without which they would not work. For instance, the runtime for the JavaScript language (which despite its name has nothing to do with Java) is built into Web browsers so scripts downloaded from Web sites can execute properly, and if you disable JavaScript in your browser's preferences then you disable the runtime and these scripts will not run.

Some other programming languages that use runtimes are Unix shell scripts, whose runtime is the shell itself (bash, sh, csh, etc.); Objective-C, which is the core programming language of OS X and whose runtime is a core library in OS X; and Java, whose runtime can be installed in an operating system and then activated when Java code needs to be executed.

Java's runtime has been a popular programming environment because its programming language is object-oriented, meaning it is well-suited for creating applications that have objectlike components to them, such as the buttons, scroll bars, and other features of a user interface. In addition, Java is built to be cross-platform, so programmers should only need to build one version of their Java code and then be able to deploy it to any operating system that has the Java runtime installed. In this sense the cross-platform effort is isolated to the runtime, instead of being a burden to the developer.

The Java Preferences application will list the runtimes available, and you can uncheck them to disable Java on your system.

(Credit: Screenshot by Topher Kessler/CNET)

These features have seen Java used in numerous programs, including Adobe's Creative Suite and other professional and scientific applications like Matlab. Even if Java is not used in the entire program, by using it in common components a developer can make porting the application to different platforms much easier.

Problems with runtimes
While runtimes such as Java offer support of new programming languages and thereby allow increased functionality to your system, they do open up more possibilities for security breaches. Code running in them will need to be isolated with sandboxing routines and other security measures to prevent unauthorized access to private or critical resources, but these measures will have to be implemented within each runtime and then tested to ensure that they cannot be breached. If a security hole is discovered, then the runtime will need to be updated to correct the problem.

With regard to Java, the runtime for Windows has been given more attention than that for OS X, so when security holes are discovered, it takes longer for the OS X version to be patched and therefore provides a better window of opportunity for malware developers to tackle it. With its latest variant, the Flashback malware has taken advantage of this window and is now targeting the unpatched Java runtime for the Mac OS.

In this case the vulnerability allows the malware to break the Java sandbox rules and write code to the disk, followed by executing it.

Checking for Java
Luckily unless a specific program needs Java, then the Java runtime is not required for OS X. None of the operating system's features need Java to run, and it's components are only present in the OS to support the runtime if you choose to install it for your needs.

Starting with OS X 10.7 Apple stopped including a Java runtime in OS X, but still provides a quick link to install it if you run a program that requires Java. When such a program is launched, you will first be prompted to install the Java runtime but if you choose not to, then the program will quit. As a result, if you have not purposefully taken steps to install Java on a new system, then it will not have a Java runtime and therefore will not be vulnerable to these latest malware attacks; however, if you are unsure whether you have Java installed, there are a couple of ways to check.

When you launch a java application or one that requires it, if you see this notice then you do not have Java installed on your system.

(Credit: Screenshot by Topher Kessler/CNET)

    • Open a Java application
      A simple way to see if you have Java installed is to open an application that requires it, and one of these that is included with OS X is the Java Preferences utility. Go to the /Applications/Utilities/ folder in OS X and launch the Java Preferences program, and if it opens and shows various configuration options, then you have Java installed; however, it if shows a message stating you need Java and provides you with an option to install it, then you do not have Java installed.
    • Use the Terminal
      The OS X Terminal (in the /Applications/Utilities/ folder) provided access to a number of commands that can be used for looking up system information, and by running the following one in the Terminal you should be able to see in the output what Java runtimes (if any) are installed on your computer:

      sudo /usr/libexec/java_home

    • Disabling Java
      If you do have Java installed on your system and would like to disable it, you can easily do so in the Java Preferences utility. When you open the utility you will be presented with a list of the Java runtimes installed on your system, and a check box next to each. By unchecking the runtimes you will prevent them from being used, and unchecking all will disable Java entirely.

      Running this Terminal command will output "No Java runtime present" if you do not have Java installed. By default new Macs will not have Java installed (click for larger view).

      (Credit: Screenshot by Topher Kessler/CNET)

      Once disabled, if you have a program on your computer that requires Java, then the program will simply not run until you enable it again. Therefore, while disabling Java does require an extra step when you want to run Java applications, it does put the control in your hands over what Java programs are allowed to run.

      Uninstalling Java
      Unfortunately there is no direct or easy way to uninstall Java, so once installed the only way to remove it and all of its components completely is to reinstall OS X; however, you can remove the Java virtual machine (the runtime) from your system and thereby perform a similar routine as an uninstall. To do this, go to the /System/Library/Frameworks/ directory and remove the file "JavaVM.framework," which contains the Java runtimes. Additionally, empty the contents of the following directories on the system which link to the runtimes in the framework:

      /System/Library/Java/JavaVirtualMachines
      /Library/Java/JavaVirtualMachines

How to check for and disable Java in OS X的更多相关文章

  1. Uninstall or Disable Java on a Mac

    You can run Java apps in two ways. The first is to run Java applets inside your Web browser with a p ...

  2. How to uninstall (remove) JAVA from OS X Lion

    Open terminal (Applications -> Utilities -> Terminal) To remove JVM enter folowing: sudo rm -r ...

  3. Java性能提示(全)

    http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLi ...

  4. java泛型学习(一)

    泛型也叫做参数化类型,顾名思义的去理解,就是把类型作为一个参数.类比方法的传参,我们举个例子. class A{ public void getX(int x){ System.out.println ...

  5. 深入理解java反射原理

    反射是java的一个特性,这一特性也使得它给了广大的第三方框架和开发过者很大的想像空间. 通过反射,java可以动态的加载未知的外部配置对象,临时生成字节码进行加载使用,从而使代码更灵活!可以极大地提 ...

  6. Java基础——反射

    今天学到Java基础中的反反射.依照我学习后的个人理解呢,反射就是一套获取类.属性.方法等的工具吧.(其实,感觉学完反射后,有点像喝凉水,解渴但确实我也没体会出它有什么味道,我可能没有学到精髓吧.自己 ...

  7. Java高新技术第二篇:反射技术

    今天我们来看一下Java中的反射技术: 首先来了解一下Java中的反射的一些概念: Java中的反射是1.2引入的 反射的基石:class类 Class类的各个实例对象分别对应各个类在内存中的字节码, ...

  8. ubuntu vps 安装java

    Introduction Java is a programming technology originally developed by Sun Microsystems and later acq ...

  9. mac java 环境设置

    MAC下JDK1.6下载路径 http://support.apple.com/kb/DL1572 Mac OS的java版本问题和Eclipse中无法找到jdk源代码的问题解决办法 下载包含源代码j ...

随机推荐

  1. 2014牡丹江——Domination

    题目链接 题意: 给一个n*m的矩阵,每天随机的在未放棋子的格子上放一个棋子.求每行至少有一个棋子,每列至少有一个棋子的天数的期望  (1 <= N, M <= 50). 分析: 比較明显 ...

  2. Javascript基础引用类型之Object

    虽然说ECMAScript也是一门对象语言,但是它和其他面向对象语言还是有区别的,它不具有类和接口等基本结构.所以在ECMAScript中一般说类指的是引用类型.创建Object实例的方式有两种: 第 ...

  3. css3 tranform  transition animation

    tranform:对象图形变形 tranform的属性包括:   1.none 表示不进行变换:   2.rotate 旋转            transform:rotate(20deg) 旋转 ...

  4. mongodb 详解 error:10061 由于目标计算机积极拒绝,无法连接解决方法

    mongodb下载地址(32位):下载地址 自己选择版本 建立如下与mongodb并行的两个文件夹data和log. 然后建立mongo.config. 在mongo.config配置文件中输入: # ...

  5. Linux设置日期

    $ date -s "2016-07-13 14:54" 把时间设置为2016-07-13 14:54

  6. 条形码/二维码之开源利器ZXing图文介绍

    全文目录: 基本介绍 二维码(比如:QRCode)的编码和解码演示 条形码(比如:EAN-13)的编码和解码演示 [一]. 基本介绍 : 1-1. ZXing是一个开源Java类库用于解析多种格式的条 ...

  7. Java Load Properties 文件,定义message信息

    初始化Properties对象,load properties文件: private static final Properties MESSAGERESOURCES = new Properties ...

  8. CSS3选择器小结

    CSS3 选择器小结 一 通用选择器 1  *{}通配选择符(CSS2):适合所有元素对象. 2  E类型(HTML)选择符(CSS1):以文档语言对象类型DOM作为选择符. 3  E#myid是id ...

  9. 一键分享到新浪微博、腾讯微博、搜狐微博、人人网、开心网、百度收藏等js代码大全

    下面给大家一些分享的js代码,只要把代码插入自己的网页中稍微修改一下图片路径就可以用了,好了,废话少说,上代码:  document.writeln("<b>喜欢本文,那就分享到 ...

  10. python爬虫下载youtube单个视频

    __author__ = 'Sentinel'import requestsimport reimport jsonimport sysimport shutilimport urlparse &qu ...