【问题标题】:Error while making my program, written in Java, usable to other people? [duplicate]使我用 Java 编写的程序对其他人可用时出错? [复制]
【发布时间】:2014-09-29 21:46:11
【问题描述】:

我创建了一个带有 GUI 的小程序,用于重新排序 PDF 文件。我想与朋友分享这个程序,所以我创建了一个 .jar 文件,并使用 launch4j 将 .jar 文件转换为 .exe 文件。 我在电脑上启动了.exe文件,程序运行正常。

这是由 launch4j 创建的 xml 文件:

enter code here<?xml version="1.0" encoding="UTF-8"?>

-<launch4jConfig>

<dontWrapJar>false</dontWrapJar>

<headerType>gui</headerType>

<jar>C:\Users\amita_000\Desktop\pdf1\PDF\jar\PDFReorder.jar</jar>

<outfile>C:\Users\amita_000\Desktop\pdf1\PDF\PDFReorder.exe</outfile>

<errTitle/>

<cmdLine/>

<chdir>.</chdir>

<priority>normal</priority>

<downloadUrl>http://java.com/download</downloadUrl>

<supportUrl/>

<stayAlive>false</stayAlive>

<manifest/>

<icon>C:\Users\amita_000\Desktop\pdf1\PDF\pdf-512.ico</icon>


-<jre>

<path/>

<bundledJre64Bit>false</bundledJre64Bit>

<minVersion>1.5.0</minVersion>

<maxVersion/>

<jdkPreference>preferJre</jdkPreference>

<runtimeBits>64/32</runtimeBits>

</jre>

</launch4jConfig>

现在我用 NSIS 创建了一个安装程序,它将可执行文件安装到计算机的“Program Files”目录中。

当我在另一台计算机上安装程序时,我成功安装,但是当我尝试运行程序时,我得到一个 java 虚拟机启动器错误:

发生了java异常

这是错误日志:

线程“main”中的异常 java.lang.UnsupportedClassVersionError: PDF_Reorder/Main : Unsupported major.minor 版本 52.0 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(未知来源) 在 java.security.SecureClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.access$100(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.launcher.LauncherHelper.checkAndLoadMain(未知来源)

我该如何解决这个问题,以便可以在任何计算机上安装和运行该程序?

【问题讨论】:

  • 我想知道发生了什么异常。你也好奇吗?您是否想知道是否有错误日志供您查看?

标签: java eclipse exe nsis launch4j


【解决方案1】:

版本错误表明用于编译代码的编译器版本与用于运行代码的 JRE 不匹配。

版本 52 对应于 Java 8,而您指定了 1.5 以上的任何 JRE。

我会使用与您使用的任何语言功能兼容的最低版本来构建您的代码。

【讨论】:

  • 将重复标记为重复。
  • 它不是重复的,它是一个错误配置的 launch4j 进程。假设重复问题的答案不会解决这个问题。
  • 好收获。粘贴了错误的网址。
  • 为什么它可以在编写代码的计算机上运行,​​而在任何其他计算机上却不行?两台计算机都运行最新的 JRE 版本。
  • @AmitaiFensterheim 仔细检查您在项目中指定的 JRE。您可能没有按照您的想法进行设置(当您安装了多个 JRE 时经常发生,就像我们大多数人一样)。
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 2017-04-12
相关资源
最近更新 更多