`
fengjianquan9527
  • 浏览: 32909 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

解决在安装了jdk1.6.0_26,又安装JDK1.8.2后导致iReport无法启动加载的问题。

jdk 
阅读更多
    今天在想再次复习体验一下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
0
1
分享到:
评论
1 楼 xie378508297 2014-08-28  
我也遇到过,path里面好像要把jre路径带上

相关推荐

    jdk1.6.0_26_x64

    **描述:“jdk1.6.0_26_x64,解压缩后配置环境变量即可,64位jdk”** 提示用户,一旦下载并解压缩此文件,无需进行传统意义上的安装过程。用户只需设置系统环境变量,特别是`JAVA_HOME`,`PATH`和`CLASSPATH`,这样...

    jdk1.6.0_10

    JDK1.6.0_10是Oracle公司发布的一个版本,它在JDK1.6系列中是一个重要的更新,提供了许多新特性、性能优化以及安全性改进。 首先,JDK1.6引入了增强的可插拔编译器(Client Compiler和Server Compiler)。Client ...

    jdk1.6.0_45下载jdk-6u45-windows-x64

    总的来说,JDK 1.6.0_45对于开发基于Java 6的应用程序至关重要,尽管现在已经有了更新的JDK版本,但仍有部分项目依赖于它,尤其是那些需要向后兼容或者运行在特定Java环境下的应用。因此,理解并掌握JDK 1.6.0_45的...

    官方原版jdk1.6.0_45提取

    JDK1.6.0_45是Oracle公司发布的一个特定版本,它属于Java 6系列,这个版本的发布日期是在2014年,主要是为了修复之前版本中的安全漏洞和性能问题。 JDK1.6.0_45包含了以下关键组件: 1. **Java Runtime ...

    jdk1.6.0_45免安装64位

    **Java开发工具包(JDK)1.6.0_45详解** Java开发工具包(Java Development Kit,简称JDK)是Oracle公司提供的用于开发和运行Java应用程序的软件包。JDK 1.6.0_45是Java 6的一个特定版本,发布于2013年,是许多...

    jdk1.6.0_20.rar

    3. **配置环境变量**:在系统环境变量中设置`JAVA_HOME`指向JDK的安装路径,并将`PATH`变量添加JDK的bin目录,这样可以在任何地方运行Java命令。 4. **验证安装**:打开命令行,输入`java -version`和`javac -...

    官网原版jdk1.6.0_45(linux)

    解压后,需要将JDK的bin目录添加到PATH环境变量中,以便系统可以在任何位置执行Java相关命令。 值得注意的是,随着时间的推移,JDK1.6.0_45的安全性和性能已经无法与最新版本相提并论。为了保持系统的安全性和最佳...

    jdk1.6.0_31绿色免安装版

    配置环境变量: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME=D:\Program Files\Java\jdk1.6.0_31 ...配置完后 在cmd 输入java -version 如果能看到版本信息 则配置成功

    JDK1.6.0_45

    JDK1.6.0_45是Java Development Kit的一个重要版本,它在Java的历史发展中扮演了关键角色,特别是在2009年至2013年期间,这个版本广泛被开发者采用,用于开发和测试各种Java应用程序。本文将深入探讨JDK1.6.0_45的...

    jdk1.6.0_17

    **Java Development Kit (JDK) 1.6.0_17详解** JDK(Java Development Kit)是Java编程语言的核心组件,它包含了编译、调试、运行Java应用程序所需的所有工具和库。JDK 1.6.0_17是Oracle公司发布的一个较早的版本,...

    jdk1.6.0_45

    - 开发者需要注意,从旧版本升级到JDK 1.6.0_45时,可能存在向后兼容性问题,需要测试代码以确保其正常运行。 - 同时,由于此版本较旧,一些现代的Java特性如模块系统(Project Jigsaw)、Lambda表达式等不支持,...

    JDK1.6.0_13免安装版

    免安装版的JDK,如JDK 1.6.0_13,通常是一个自包含的可执行文件集合,不需要通过传统安装过程即可使用。这种版本便于在不同环境之间移动,或者在没有管理员权限的机器上快速部署Java开发环境。用户只需解压文件,...

    (JDK大全) jdk1.6.0_24 解压免安装版

    `(JDK大全) jdk1.6.0_24 解压免安装版`是一个针对Windows操作系统的64位版本的JDK,它允许用户直接解压缩文件后开始使用,无需经历传统安装过程。这个版本的JDK由Oracle公司发布,确保了其合法性与正版性。 JDK ...

    jdk1.6.0_191.linux.x64.tar.gz

    解压后使用方法:(不执行下面两步,运行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.zip

    在解压缩的文件列表中,`jdk1.6.0_43`通常会包含以下目录和文件: - `bin`:存放可执行文件,如javac、java等。 - `lib`:存放Java类库,包括rt.jar、charsets.jar等。 - `docs`:可能包含API文档和其他相关文档。 -...

    jdk1.6.0_22rar

    对于仍在使用JDK1.6.0_22的开发者,他们可能依赖这个版本的特定特性,或者他们的应用无法轻易地升级到更高版本的JDK,因为这可能涉及到大量的代码调整和测试。然而,值得注意的是,较旧的JDK版本可能存在安全漏洞,...

    jdk1.6.0_45.tar.gz

    5. **开发者工具**:JDK自带的开发工具集(如Javadoc、JDB调试器和javac编译器)可能在1.6.0_45中得到了改进,以提供更好的用户体验和错误处理能力。 ### `.tar.gz` 文件格式 `.tar.gz` 是一种常见的文件打包和压缩...

    jdk1.6.0_43压缩包,免安装,解压可用

    在这个特定的压缩包"jdk1.6.0_43"中,我们讨论的是Java 6的一个更新版本,即1.6.0的第43个更新。这个版本在2013年发布,主要为开发者提供了一个无需安装的便捷方式来使用Java 6环境。 JDK的核心组件包括: 1. **...

    jdk1.6.0_25

    这些特性在JDK 1.6.0_25中可能已经完全实现或部分实现,具体取决于Oracle对该版本的更新内容。如果你正在使用这个版本,你需要确保你的代码与这个版本兼容,并且定期检查更新,因为较早的版本可能不再接受安全更新,...

Global site tag (gtag.js) - Google Analytics