【问题标题】:iReport not starting using JRE 8iReport 未开始使用 JRE 8
【发布时间】:2014-07-17 03:59:51
【问题描述】:

我已经使用 Windows 安装程序下载并安装了 iReport 4.5。但是当我尝试启动 iReport 时,它会显示启动画面但不会启动。

我的 JRE 版本是 8。

【问题讨论】:

  • JasperReports 还不支持 Java 8。
  • 而且似乎无意支持 Java 8。iReport 一直处于维护模式,直到 2015 年底 (community.jaspersoft.com/project/ireport-designer)。 Jasper Studio 现在是受支持的工具。请参阅superuser.com/questions/607874/… 了解它为什么不起作用(iReport 所基于的 NetBeans 7.4 与 Java 8 存在兼容性问题)。 xtsoler 的解决方案有效,尽管您不必更改配置文件或将 jre7 放在特殊的目录中,您只需启动指向 jre 的 iReport:ireport --jdk /my/path/to/jre7
  • 如果有人想加入:github.com/wumpz/ireport/issues/3?甚至 JDK 16 也是可能的。 ;)

标签: ireport


【解决方案1】:

如果您不想安装较旧的 Java 版本,还有另一种方法,您可以执行以下操作:

1) 从https://sourceforge.net/projects/ireport/files/iReport/iReport-5.6.0/下载iReport-5.6.0.zip

2) 从https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 下载 jre-7u67-windows-x64.tar.gz(打包在 tar 中)

3) 提取 iReport 并在包含 bin 和 etc 文件夹的提取文件夹中放入 jre。例如,如果您解压缩两次 jre-7u67-windows-x64.tar.gz,您最终会得到一个名为 jre1.7.0_67 的文件夹。将该文件夹放入 iReport-5.6.0 目录:

然后进入 etc 文件夹并编辑文件 ireport.conf 并在其中添加以下行:

对于 Windows jdkhome=".\jre1.7.0_67"

对于 Linux jdkhome="./jre1.7.0_67"

注意:jre 版本可能会改变!根据你下载的 1.7

现在,如果您从 iReport 目录中的 bin 文件夹运行 ireport_w.exe,它应该可以正常加载。

【讨论】:

  • 添加 jdkhome 为我做了。也适用于旧版本:4.7.0 和 4.1.2
  • 这对我有用。我有 Java 8,我使用了不同的版本:1.7.0.79。
  • 只是为了确认不能使用 Java 8 的问题至少是 5.6.0 版本(评论时最新的)
  • 步骤 3 的一部分,因为将 Java 安装放入 iReport 的文件夹是不必要的。基本上你可以把它放在任何地方,我永远不会把它放在其他任何地方,那么它应该是:Program Files 文件夹。检查其他答案以及..
  • 适合自己。但是这里的重点是,您只需要那个旧 jre 来启动这个 ireport。
【解决方案2】:

不要卸载任何东西。具有多个 java 版本的系统可以正常工作。并且您不需要更新您的环境变量(例如 java_home、path 等)。

是的,ireports 3.6.1 需要 java 7(不适用于 java 8)。

您所要做的就是编辑 C:\Program Files\Jaspersoft\iReport-nb-3.6.1\etc\ireport.conf:

# default location of JDK/JRE, can be overridden by using --jdkhome <dir> switch
jdkhome="C:/Program Files/Java/jdk1.7.0_45"

在 linux 上(没有空格和标准文件路径)要容易得多。保留您的 java 8 用于其他有趣的项目...

【讨论】:

    【解决方案3】:

    使用 ireport 4.7.1,在 etc/ireport.conf 中设置 jdkhome 后,ireport.exe 无法启动。没有飞溅,没有窗口。

    当我在 cmd 中启动 ireport_w.exe 时,我收到以下消息:

    虚拟机初始化时出错

    无法为对象堆保留足够的空间

    错误:无法创建 Java 虚拟机。

    错误:发生了致命异常。程序将退出。

    解决方案: 在文件 etc/ireport.conf 中,在以 default_options 开头的行中,我已将 -J-XX:MaxPermSize 的值减少到 256m 而不是 512m

    default_options="--branding ireport -J-Xms256m -J-Xmx512m
        -J-Dorg.netbeans.ProxyClassLoader.level=1000 -J-XX:MaxPermSize=256m"
    

    【讨论】:

    • 确保您没有任何环境变量(如 _JAVA_OPTIONS)会覆盖这些设置。我有一个将堆大小设置为 1 GB 的环境变量。它优先于此处的default_options 设置。删除后,iReport 运行成功。
    【解决方案4】:

    虽然 ireport 不正式支持 java8,但有一种相当简单的方法可以使 ireport(使用 ireport 5.1 测试)与 Java 8 一起工作。问题实际上出在 netbeans 中。有一个非常简单的补丁,假设您不关心 Java 8 中改进的安全性:

    http://hg.netbeans.org/jet-main/diff/3238e03c676f/openide.util/src/org/openide/util/WeakListenerImpl.java

    我什至没有使用 ireport 使用的确切 netbeans 源。我刚刚从上面的存储库中完整下载了最新的 WeakListenerImpl.java,并在编译器类路径中使用 platform9/lib/org-openide-util.jar 将其编译到 ireport 目录中

    cd blah/blah/iReport-5.1.0
    wget http://hg.netbeans.org/jet-main/raw-file/3238e03c676f/openide.util/src/org/openide/util/WeakListenerImpl.java
    javac -d . -cp platform9/lib/org-openide-util.jar WeakListenerImpl.java
    zip -r platform9/lib/org-openide-util.jar org
    

    我尽量避免运行 eclipse 来编辑 jasper 报告。基于 netbeans 的 ireport 的重量要轻得多。运行 Eclipse 就像使用 emacs。

    【讨论】:

    • 和这个bug有关:netbeans.org/bugzilla/show_bug.cgi?id=229191但是iReport没有更新。
    • 谢谢谢谢谢谢!你是救生员!我尝试使用 Java 8 运行 ireport 5.6,但发现它没有启动。然后我尝试下载 java 7,但 oracle 只允许 oracle 客户下载它(!)......所以我会碰壁,直到我偶然发现你的解决方案效果很好!你拯救了我的一天:)
    • 这确实是比安装JDK7更好的解决方案。我不知道为什么它的票数这么少。虽然一行补丁禁用了一些改进的 JDK8 安全性,但结果并不比在 JDK7 下运行更差(而且可能更好)。
    【解决方案5】:

    我厌倦了在谷歌上搜索如何使用 java 8 运行 iReport。

    我按照网上说的做了一切,但我不知道为什么它们不适合我。

    然后我使用注册表编辑器将我的计算机 JDK 当前版本从 1.8 更改为 1.7。

    现在可以正常使用了。

    更改当前版本

    开始 => 输入 regedit(按 Enter)=> HKEY_LOCAL_MACHINE => SOFTWARE => JavaSoft => Java Development Kit => 将 CurrentVersion 的键值从 1.8 更改为 1.7

    【讨论】:

      【解决方案6】:

      我在我的电脑上修复了这个问题, 在我的环境中 iReport 是 iReport-5.1.0 , jdk 7 和 jdk 8 都已安装。

      但是 iReport 没有加载

      修复:- 1.找到iReport.conf //C:\Program Files (x86)\Jaspersoft\iReport-5.1.0\etc

      1. 在文本编辑器中打开它

      2. 复制你的 jdk 安装路径 //C:\Program Files (x86)\Java\jdk1.8.0_60

      3. 将 jdkhome= 添加到 ireport.conf 文件中 jdkhome="C:/Program Files (x86)/Java/jdk1.8.0_60"

      现在 iReport 可以工作了

      【讨论】:

        【解决方案7】:

        iReport 不适用于 java 8。

        • 如果尚未安装,请下载并安装 java 7
        • 找到 iReport 的安装目录并打开文件:ireport.conf

        (你会在这里找到它:iReport-x.x.x\etc\)

        改变这一行:

        #jdkhome="/path/to/jdk"
        

        对此(如果不是这是您的 java 7 安装目录,则将“”之间的参数值替换为您安装的 java 7 的路径):

        jdkhome="C:\Program Files\Java\jdk1.7.0_67"
        

        【讨论】:

        • 也适用于 iReport-3.7.2 等旧版本
        • 所以可以理解:这不会改变您(或您公司)的默认 Java 设置,这就是我推荐它的原因。这改变了 iReport 的行为:iReport 将搜索您告诉它搜索的 jdk,而不是使用默认的 Java 设置。无论您将来升级 Java,iReport 仍然可以工作,直到旧的 Java 存在于您的机器上。 :) 我不会对注册表黑客投反对票,但我不会说注册表黑客是一种解决方案..
        【解决方案8】:

        它只适用于JRE 1.7 只需下载并解压缩到您喜欢的位置

        并使用以下命令打开 iReport

        ireport --jdkhome Path To JDK Home
        

        【讨论】:

          【解决方案9】:

          对我来说,Stuart Gathman 和 Raviath 在此线程中的回答在 Windows Server 2016 for iReport 5.6.0 中发挥了作用。

          此外,我在 C:\program files\java\jre7 中向 jdk8 添加了一个符号链接,如下所示:

          cmd /c mklink /d "C:\program files\java\jre7\bin" "C:\Program Files\Java\jdk1.8.0_181\bin"
          

          因为 iReport 一直抱怨它无法在 C:\program files\java\jre7\bin\ 中找到 java.exe - 所以我为它提供了所需的可用 java.exe(在我的情况下为 V8.181)路径,它高兴地吞下了它。

          【讨论】:

            【解决方案10】:

            我已经用 Java 7 安装了 IReport 5.6:不工作

            我尝试安装 Java 6 并添加了“ireport.conf”文件的路径,就像附加的屏幕截图一样,它运行良好:D

            所以步骤是:

             Install IReport 5.6
             Install JDK 6
             Edit "ireport.conf" file like the below image and Enjoy ;)
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-11-30
              • 1970-01-01
              • 2014-09-26
              • 2013-12-03
              • 1970-01-01
              相关资源
              最近更新 更多