iReport无法开始使用JRE 8


88

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

我的JRE版本是8。


3
JasperReports目前还不支持Java 8。
2014年

4
似乎没有打算支持Java8。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
Glenn

Answers:


150

如果您不想安装较旧的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下载jre-7u67-windows-x64.tar.gz(打包在tar中的那个).html

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,它应该可以正常加载。


2
添加jdkhome为我做到了。同样适用于旧版本:4.7.0和4.1.2
Dimitri Dewaele 2015年

这帮了我大忙。我有Java 8,我使用了另一个版本:1.7.0.79。
Noldy

2
只是为了确认不使用Java 8的问题至少已经通过了5.6.0版(在评论时是最新的)
Hubert Schumacher

1
步骤3的一部分不需要将Java安装放入iReport的文件夹中。基本上,您可以将其放置在任何地方,而我永远也不会将其放置在其他地方,那就应该是:Program Files文件夹。检查其他答案以及..
BlondCode

你自便。但是这里的要点是,您仅需要用于启动此ireport的旧jre。
xtsoler

59

不要卸载任何东西。具有多个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用于其他有趣的项目...


17

iReport不适用于Java 8。

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

(您将在这里找到它:iReport-xxx \ etc \)

更改此行:

#jdkhome="/path/to/jdk"

为此(如果不是,则为java 7的安装目录,然后用已安装的java 7的路径替换“”之间的参数值):

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

也可以在iReport-3.7.2等旧版本上使用
BlondCode

因此可以理解:这不会更改您(或您公司的)默认Java设置,这就是我推荐的原因。这会更改iReport的行为:iReport将搜索您告诉其搜索的jdk,而不是使用默认Java设置。无论您将来要升级Java,iReport都将继续运行,直到旧Java存在于您的计算机上。
:)

9

尽管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。


1
它与以下错误相关:netbeans.org/bugzilla/show_bug.cgi? id = 229191但是iReport尚未更新。
吉尔伯托

2
谢谢你,谢谢你,谢谢你!你是救星!我尝试使用Java 8运行ireport 5.6,发现它没有启动。然后,我尝试下载Java 7,但是oracle允许oracle客户下载它(!)...因此,我碰壁了,直到偶然发现您的解决方案效果很好!您救了我的一天:)
Serafeim

1
与安装JDK7相比,这确实是一个更好的解决方案。我不知道为什么投票这么少。虽然单行修补程序禁用了一些改进的JDK8安全性,但结果并不比在JDK7下运行更糟(并且可能更好)。
Stuart Gathman


4

我将其固定在PC上,在我的环境中,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将可以工作


1

使用ireport 4.7.1,在将jdkhome设置为后etc/ireport.confireport.exe无法启动。没有飞溅,没有窗户。

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

VM初始化期间发生错误

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

错误:无法创建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将成功运行。
ADTC 2015年

0

我已经厌倦了在Google上搜索如何使用Java 8运行iReport。

我做了互联网上所说的一切,但我不知道为什么它们对我不起作用。

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

现在工作正常。

更改当前版本

开始=>键入regedit(按Enter)=> HKEY_LOCAL_MACHINE =>软件=> JavaSoft => Java开发工具包=>将CurrentVersion的键值从1.8更改为1.7


0

对我而言,此线程中Stuart Gathman和Raviath的答案的结合在Windows Server 2016中为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),欣喜地吞下了它。


0

我已经使用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 ;)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.