将系统重做了下,安装了10.9.1。将JDK1.7.0_51安装完毕后,解压eclipse,启动时,提示:
- To open “Eclipse,” you need a Java SE 6 runtime. Would you like to install one now?
但是通过eclipse中的alias启动没有任何问题:
猜想是eclipse默认会从java6时代的特定的目录中查找jre,而在oracle提供的Java该路径发生了变化。
1、在oracle JDK的默认安装目录下创建一个软连接,方便以后升级修改软连接,而无需修改后续的目录。
- cd /Library/Java/JavaVirtualMachines
- sudo ln -s jdk1.7.0_51.jdk CurrentJDK.jdk
2、在/System/Library/Frameworks/JavaVM.framework/Versions/下创建一个软连接CurrentJDK 指向前面的CurrentJDK.jdk/Contents/Home/
- cd /System/Library/Frameworks/JavaVM.framework/Versions/
- sudo ln -s /Library/Java/JavaVirtualMachines/CurrentJDK.jdk/Contents/Home/ CurrentJDK
3、创建目录/System/Library/Java/JavaVirtualMachines/,并在该目录下创建一个软连接1.6.0.jdk指向/usr/libexec/java_home
- cd /System/Library/Java/JavaVirtualMachines
- sudo ln -s /Library/Java/JavaVirtualMachines/CurrentJDK.jdk/Contents/Home/ jdk1.6.0.jdk
由于这2个目录需要root权限,因此在执行命令时,需要使用sudo 提升权限。
如果升级了java版本,则只需要修改第一步,将CurrentJDK.jdk指向新版的JDK目录。
关于In命令:
这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。
这个命令最常用的参数是-s,具体用法是:
sudo ln -s 源文件 目标文件
举例:
当前目录是/local,而我经常要访问/usr/local/linux/work
那么我就可以使用在local下建立一个文件linkwork,
然后sudo ln -s /usr/local/linux/work /local/linkwork
即建立两者之间的链接。
删除链接
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。
在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。
如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。