windows使用其他版本java

换到自己的笔记本上做安卓开发,出现了一个很烦人的问题,就是一直报
Can't bind to local 86XX for debugger
这样一个错。网上查了一下,原因是jre7不兼容的问题,需要退回到jre6才行。我安装了jre6,又不想卸载jre7,就想,改了环境变量的PATH应该就好了吧。

JAVA_HOME = "C:\Program Files\Java\jre6"
PATH = "...;%JAVA_HOME%\bin"

可是修改之后,进入命令行输入java -version一看,问题没有解决,还是java 1.7的版本。这很奇怪啊。
java_in_system32
网上继续查了一下,原来java installer会把java.exe复制一份到windows/system32下面,而PATH的特点是先到先得,在系统目录找到java.exe后,就直接执行了。需要把jre\bin的目录在PATH中设置到系统目录之前,就解决问题了。

JAVA_HOME = "C:\Program Files\Java\jre6"
PATH = "%JAVA_HOME%\bin;..."

顺带再骂一句java,每个主要版本升级都闹出一堆不兼容来,不知怎么想的。一处开发到处执行这个口号唉。。。不提。。
又记起那时候在公司配置Jira系统的痛苦了。。

参考

windows UNC path

原来windows可以支持这种UNC的路径名,甚至用fopen的时候也可以用UNC。全称叫做Uniform Naming Convention.

UNC就是在路径名前面加上\\?\符号。虽然在资源管理器里面不能用,但在浏览器的地址栏里面输入这种类型的路径是可以访问的。例如 \\?\D:\ 之类。

某些时候挺有用,例如路径名长度超过249的时候,或者要访问samba服务器上的资源的时候。做个记录。