今天在想再次复习体验一下JDK1.8的新特性,机器上已经安装了jdk1.6.0_26之,现有的工程是基于1.6的的,不想卸载,于是就直接安装了JDK1.8.2,为了避免冲突。直接将JAVA_HOME跟踪到/java/jdk1.6.0_26这一级目录,CLASSPATH、PATH直接写死了,分别给出绝对路径。新的Eclipse 4.4 LuNa启动没问题,但是iReport就不行了,光出现加载窗口,接着就一闪而过,无法正常启动加载。
解决办法:
类比于其他工具,工具自身的JDK应该都有一个配置文件的。于是乎,稍微研究一下ireport的目录结构,在bin目录下有个ireport的批处理文件,里面N多次的调用${jdkhome}这个变量,证明其他配置文件肯定有这个变量的配置,仔细研究,我们不难发现在etc目录下有一个ireport.conf,打开便发现有一个jdkhome的行被注释掉了,这很显然,应该是启用系统环境变量中的JDK_HOME,但是我环境中JAVA_HOME是写死的,为什么依然无法加载嗫?这个也是我一直迷惑的。个人猜想,在安装JDK的时候,Java底层加载方式应该有版本优先的机制(个人想法)。于是乎,抱着试试看的态度,直接将这个jdkhome写死我的jdk1.6.0_26地址。然后启动,一切正常。
心有不甘,JDK1.8应该是向下兼容的啊,jdk1.6能启动,jdk1.8应该也可以的,于是乎将jdkhome改成了JDK1.8的绝对路径,启动ireport无法启动。不知道为什么,可能是ireport自身的问题。
附上我本地配置文件:
ireport.conf:
jdkhome="D:\Program Files\Java\jdk1.6.0_26"
JAVA_HOME:
D:\Program Files\Java\jdk1.6.0_26
CLASSPATH:
D:\Program Files\Java\jre6\lib;
ireport批处理:
#!/bin/sh
#
# resolve symlinks
#
PRG=$0
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
if expr "$link" : '^/' 2> /dev/null >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
progdir=`dirname "$PRG"`
APPNAME=`basename "$0"`
if [ -f "$progdir/../etc/$APPNAME".conf ] ; then
. "$progdir/../etc/$APPNAME".conf
fi
# XXX does not correctly deal with spaces in non-userdir params
args=""
case "`uname`" in
Darwin*)
userdir="${default_mac_userdir}"
;;
*)
userdir="${default_userdir}"
;;
esac
while [ $# -gt 0 ] ; do
case "$1" in
--userdir) shift; if [ $# -gt 0 ] ; then userdir="$1"; fi
;;
*) args="$args \"$1\""
;;
esac
shift
done
if [ -f "${userdir}/etc/$APPNAME".conf ] ; then
. "${userdir}/etc/$APPNAME".conf
fi
if [ -n "$jdkhome" -a \! -d "$jdkhome" -a -d "$progdir/../$jdkhome" ]; then
# #74333: permit jdkhome to be defined as relative to app dir
jdkhome="$progdir/../$jdkhome"
fi
readClusters() {
if [ -x /usr/ucb/echo ]; then
echo=/usr/ucb/echo
else
echo=echo
fi
while read X; do
if [ "$X" \!= "" ]; then
$echo "$progdir/../$X"
fi
done
}
clusters=`(cat "$progdir/../etc/$APPNAME".clusters; echo) | readClusters | tr '\012' ':'`
if [ ! -z "$extraclusters" ] ; then
clusters="$clusters:$extraclusters"
fi
nbexec=`echo "$progdir"/../platform*/lib/nbexec`
case "`uname`" in
Darwin*)
eval exec sh '"$nbexec"' \
--jdkhome '"$jdkhome"' \
-J-Dcom.apple.mrj.application.apple.menu.about.name='"$APPNAME"' \
-J-Xdock:name='"$APPNAME"' \
'"-J-Xdock:icon=$progdir/../../$APPNAME.icns"' \
--clusters '"$clusters"' \
--userdir '"${userdir}"' \
${default_options} \
"$args"
;;
*)
sh=sh
# #73162: Ubuntu uses the ancient Bourne shell, which does not implement trap well.
if [ -x /bin/bash ]
then
sh=/bin/bash
fi
eval exec $sh '"$nbexec"' \
--jdkhome '"$jdkhome"' \
--clusters '"$clusters"' \
--userdir '"${userdir}"' \
${default_options} \
"$args"
exit 1
;;
esac
分享到:
相关推荐
**描述:“jdk1.6.0_26_x64,解压缩后配置环境变量即可,64位jdk”** 提示用户,一旦下载并解压缩此文件,无需进行传统意义上的安装过程。用户只需设置系统环境变量,特别是`JAVA_HOME`,`PATH`和`CLASSPATH`,这样...
JDK1.6.0_45是Oracle公司发布的一个特定版本,它属于Java 6系列,这个版本的发布日期是在2014年,主要是为了修复之前版本中的安全漏洞和性能问题。 JDK1.6.0_45包含了以下关键组件: 1. **Java Runtime ...
JDK1.6.0_10是Oracle公司发布的一个版本,它在JDK1.6系列中是一个重要的更新,提供了许多新特性、性能优化以及安全性改进。 首先,JDK1.6引入了增强的可插拔编译器(Client Compiler和Server Compiler)。Client ...
总的来说,JDK 1.6.0_45对于开发基于Java 6的应用程序至关重要,尽管现在已经有了更新的JDK版本,但仍有部分项目依赖于它,尤其是那些需要向后兼容或者运行在特定Java环境下的应用。因此,理解并掌握JDK 1.6.0_45的...
**Java开发工具包(JDK)1.6.0_45详解** Java开发工具包(Java Development Kit,简称JDK)是Oracle公司提供的用于开发和运行Java应用程序的软件包。JDK 1.6.0_45是Java 6的一个特定版本,发布于2013年,是许多...
3. **配置环境变量**:在系统环境变量中设置`JAVA_HOME`指向JDK的安装路径,并将`PATH`变量添加JDK的bin目录,这样可以在任何地方运行Java命令。 4. **验证安装**:打开命令行,输入`java -version`和`javac -...
配置环境变量: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME=D:\Program Files\Java\jdk1.6.0_31 ...配置完后 在cmd 输入java -version 如果能看到版本信息 则配置成功
解压后,需要将JDK的bin目录添加到PATH环境变量中,以便系统可以在任何位置执行Java相关命令。 值得注意的是,随着时间的推移,JDK1.6.0_45的安全性和性能已经无法与最新版本相提并论。为了保持系统的安全性和最佳...
**Java Development Kit (JDK) 1.6.0_17详解** JDK(Java Development Kit)是Java编程语言的核心组件,它包含了编译、调试、运行Java应用程序所需的所有工具和库。JDK 1.6.0_17是Oracle公司发布的一个较早的版本,...
- 开发者需要注意,从旧版本升级到JDK 1.6.0_45时,可能存在向后兼容性问题,需要测试代码以确保其正常运行。 - 同时,由于此版本较旧,一些现代的Java特性如模块系统(Project Jigsaw)、Lambda表达式等不支持,...
JDK1.6.0_45是Java Development Kit的一个重要版本,它在Java的历史发展中扮演了关键角色,特别是在2009年至2013年期间,这个版本广泛被开发者采用,用于开发和测试各种Java应用程序。本文将深入探讨JDK1.6.0_45的...
免安装版的JDK,如JDK 1.6.0_13,通常是一个自包含的可执行文件集合,不需要通过传统安装过程即可使用。这种版本便于在不同环境之间移动,或者在没有管理员权限的机器上快速部署Java开发环境。用户只需解压文件,...
`(JDK大全) jdk1.6.0_24 解压免安装版`是一个针对Windows操作系统的64位版本的JDK,它允许用户直接解压缩文件后开始使用,无需经历传统安装过程。这个版本的JDK由Oracle公司发布,确保了其合法性与正版性。 JDK ...
解压后使用方法:(不执行下面两步,运行java -version会报下面的错误,解压命令:tar xvzf jdk1.6.0_191.linux.x64.tar.gz) # Error occurred during initialization of VM # java/lang/NoClassDefFoundError: java...
在解压缩的文件列表中,`jdk1.6.0_43`通常会包含以下目录和文件: - `bin`:存放可执行文件,如javac、java等。 - `lib`:存放Java类库,包括rt.jar、charsets.jar等。 - `docs`:可能包含API文档和其他相关文档。 -...
在安装或使用JDK1.6.0_45时,用户需要确保他们的系统满足必要的硬件和软件要求,并且理解不使用最新版本可能带来的安全风险。由于Java的更新迭代,更现代的版本通常包含更多的安全更新和性能改进,因此在可能的情况...
对于仍在使用JDK1.6.0_22的开发者,他们可能依赖这个版本的特定特性,或者他们的应用无法轻易地升级到更高版本的JDK,因为这可能涉及到大量的代码调整和测试。然而,值得注意的是,较旧的JDK版本可能存在安全漏洞,...
5. **开发者工具**:JDK自带的开发工具集(如Javadoc、JDB调试器和javac编译器)可能在1.6.0_45中得到了改进,以提供更好的用户体验和错误处理能力。 ### `.tar.gz` 文件格式 `.tar.gz` 是一种常见的文件打包和压缩...
在这个特定的压缩包"jdk1.6.0_43"中,我们讨论的是Java 6的一个更新版本,即1.6.0的第43个更新。这个版本在2013年发布,主要为开发者提供了一个无需安装的便捷方式来使用Java 6环境。 JDK的核心组件包括: 1. **...