2

我目前安装了 install4j 4.2.3,我们正在尝试将我们的项目升级到 JDK 7。我们的包构建失败,出现有关 UnsupportedClassVersionException 的错误,例如:

[install4j] java.lang.UnsupportedClassVersionError: com/ourcompany/product/installer/action/FindRelatedInstallationsAction : Unsupported major.minor version 51.0
[install4j]     at java.lang.ClassLoader.defineClass1(Native Method)
[install4j]     at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
[install4j]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[install4j]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
[install4j]     at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
[install4j]     at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
[install4j]     at java.security.AccessController.doPrivileged(Native Method)
[install4j]     at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
[install4j]     at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
[install4j]     at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
[install4j]     at java.lang.Class.forName0(Native Method)
[install4j]     at java.lang.Class.forName(Class.java:270)
[install4j]     at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:102)
[install4j]     at com.sun.beans.finder.ClassFinder.resolveClass(ClassFinder.java:169)
[install4j]     at com.sun.beans.ObjectHandler.classForName2(ObjectHandler.java:214)
[install4j]     at com.sun.beans.ObjectHandler.startElement(ObjectHandler.java:248)
[install4j]     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:459)
[install4j]     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
[install4j]     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1327)
[install4j]     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2739)
[install4j]     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
[install4j]     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
[install4j]     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:828)
[install4j]     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:757)
[install4j]     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:133)
[install4j]     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1211)
[install4j]     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:551)
[install4j]     at javax.xml.parsers.SAXParser.parse(SAXParser.java:361)
[install4j]     at javax.xml.parsers.SAXParser.parse(SAXParser.java:139)
[install4j]     at java.beans.XMLDecoder$1.run(XMLDecoder.java:265)
[install4j]     at java.beans.XMLDecoder$1.run(XMLDecoder.java:259)
[install4j]     at java.security.AccessController.doPrivileged(Native Method)
[install4j]     at java.beans.XMLDecoder.getHandler(XMLDecoder.java:259)
[install4j]     at java.beans.XMLDecoder.readObject(XMLDecoder.java:223)
[install4j]     at com.install4j.A.A.L.å(ejt:772)
[install4j]     at com.install4j.C.F.F.Y(ejt:3262)
[install4j]     at com.install4j.C.F.F._(ejt:2484)
[install4j]     at com.install4j.C.F.F.b(ejt:742)
[install4j]     at com.install4j.C.F.F.o(ejt:3446)
[install4j]     at com.install4j.C.F.F.G(ejt:2571)
[install4j]     at com.install4j.C.F.F.J(ejt:1755)
[install4j]     at com.install4j.C.F.F.I(ejt:1966)
[install4j]     at com.install4j.C.F.F.l(ejt:93)
[install4j]     at com.install4j.C.F.F.M(ejt:640)
[install4j]     at com.install4j.C.C.H.A(ejt:2000)
[install4j]     at com.install4j.C.A.p(ejt:2111)
[install4j]     at com.install4j.C.A.A(ejt:712)
[install4j]     at com.install4j.C.B.È(ejt:1736)
[install4j]     at com.install4j.C.B.Æ(ejt:3290)
[install4j]     at com.install4j.C.B.I(ejt:659)
[install4j]     at com.install4j.Install4JApplication.ř(ejt:3031)
[install4j]     at com.A.L.Ň(ejt:2517)
[install4j]     at com.install4j.Install4JApplication.main(ejt:3481)
[install4j]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[install4j]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[install4j]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[install4j]     at java.lang.reflect.Method.invoke(Method.java:622)
[install4j]     at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
[install4j]     at com.install4j.runtime.Launcher.main(Unknown Source)

我还尝试使用最新的可用 4.x(似乎是 4.2.8)并收到相同的错误。

我不确定它是否相关,但我们的项目文件已更新以指定最低 Java 版本 1.7:

<application 
    name="${compiler:PRODUCTNAME} Server" 
    distributionSourceDir="" 
    applicationId="xxxx" 
    mediaDir="../../results" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.version}_${compiler:sys.platform}" 
    compression="6" 
    lzmaCompression="false" 
    pack200Compression="false" 
    excludeSignedFromPacking="true" 
    keepModificationTimes="false" 
    missingFilesStrategy="warn" 
    shortName="product_server" 
    publisher="${compiler:COMPANYNAME}" 
    publisherWeb="http://ourcompany.com" 
    version="0.0.0" 
    allPathsRelative="true" 
    backupOnSave="false" 
    autoSave="false" 
    convertDotsToUnderscores="true" 
    macSignature="????" 
    installerName="" 
    javaMinVersion="1.7" 
    javaMaxVersion="" 
    allowBetaVM="false" 
    jdkMode="runtimeJre" 
    jdkName="">

我已经用 install4j 5.x 测试了一些东西,并且构建确实运行了,但我想我会检查一下是否有一些我遗漏的简单的东西可以让我们继续使用 4.x。不幸的是,当我搜索相关术语时,谷歌似乎没有找到太多东西。提前致谢!:)

4

1 回答 1

0

使用 install4j 4.x 时,您必须使用-target 1.6.. 这是因为 install4j 编译器使用 Java 6 运行。

于 2014-07-15T19:24:51.753 回答