当前位置: 首页 > 知识库问答 >
问题:

为什么Launch4j找不到已安装的JDK?

东门清夷
2023-03-14

我已经在我的计算机上安装了Launch4j和JDK,我正在尝试将jar文件转换为exe。启动Launch4j时,出现以下错误:

此应用程序需要Java运行时环境1.6.0

我怎样才能解决这个问题?查找已安装JRE/JDK的Launch4j搜索策略是什么?

JDK版本:

java -version

输出:

java版本“14”2020-03-17 java(TM)SE运行时环境(build 14 36-1461)java热点(TM)64位服务器虚拟机(build 14 36-1461,混合模式,共享)

我在变量path和JAVA_HOME中都有JDK path。我试图卸载JDK并安装JRE,但我首先需要编译*。java到*。使用javac命令初始化文件。所以在本例中,我有不同版本的JDK和JRE。

官方文件说:

Launch4j要求每个输出可执行文件都有一个xml配置文件。

因此,我可以使用jre标记和jdkPreference属性来指定配置文件中公共jre或私有JDK运行时的首选项。但我如何才能将其添加到构建中。xml文件?

建筑xml:

<project name="launch4j" default="compile" basedir=".">
    <property name="src" location="src" />
    <property name="lib" location="lib" />
    <property name="build" location="build" />
    <property name="jar" location="./${ant.project.name}.jar" />
    <property name="launch4j.dir" location="." />
    <property name="maven" location="maven" />

    <path id="dist.classpath">
        <pathelement path="${build}" />
        <fileset dir="${lib}">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <target name="init">
        <tstamp />
        <mkdir dir="${build}" />
    </target>

    <target name="compile" depends="init" description="compile the source">
        <javac srcdir="${src}" destdir="${build}" classpathref="dist.classpath" source="1.6" debug="on" includeantruntime="false" />
        <copy todir="${build}/images">
            <fileset dir="${src}/images">
                <include name="**/*" />
            </fileset>
        </copy>
        <copy todir="${build}">
            <fileset dir="${src}">
                <include name="**/*.properties" />
            </fileset>
        </copy>
    </target>

    <target name="jar" depends="compile" description="create jar">
        <fileset dir="${lib}" id="lib.dist.fileset">
            <include name="**/*.jar" />
        </fileset>
        <pathconvert pathsep=" " property="dist.classpath" refid="lib.dist.fileset">
            <map from="${lib}" to="./lib" />
        </pathconvert>
        <!-- Put everything in ${build} into a jar file -->
        <jar jarfile="${jar}">
            <fileset dir="${build}" excludes="**/messages_es.properties" />
            <manifest>
                <attribute name="Main-Class" value="net.sf.launch4j.Main" />
                <attribute name="Class-Path" value=". ${dist.classpath}" />
            </manifest>
        </jar>
    </target>

    <target name="demo" depends="jar" description="build the demos">
        <ant dir="./demo/ConsoleApp" inheritAll="false" />
        <ant dir="./demo/SimpleApp" inheritAll="false" />
    </target>

    <target name="clean" description="clean up">
        <delete dir="${build}" />
        <delete file="${jar}" />
        <ant dir="./demo/ConsoleApp" target="clean" inheritAll="false" />
        <ant dir="./demo/SimpleApp" target="clean" inheritAll="false" />
    </target>

    <target name="switch-to-maven" description="switch project to maven">
        <copy todir="." overwrite="true">
            <fileset dir="${maven}">
                <include name="**/*" />
            </fileset>
        </copy>
        <delete dir="${lib}" />
        <mkdir dir="./target" />
    </target>
</project>

谢谢

共有2个答案

窦伟
2023-03-14

而不是启动launch4j。exe作为windows可执行文件,您可以启动4。使用jdk创建jar。因此,标记启动4J。在文件资源管理器中,右键单击,选择“打开方式”,并引用已安装的jdk,例如open jdk platform binary

马才
2023-03-14

Launch4j似乎受到新java版本的限制。。。在上一次更新中,他们显示了有关支持的jvm的详细信息,最后一次更新是1.8.9,还有一张关于java 9及更高版本遵从性的罚单。。。更改日志和票据启动4J

 类似资料:
  • 错误: 回溯(最近一次调用):文件“./video_qt.py”,第8行,从PyQt5导入QtWidgets,QtCore importerror:/usr/lib/x86_64-linux-gnu/libqt5gui.so.5:找到版本`qt_5'not>(由/usr/local/lib/python3.5/dist-packages/PyQt5/QtWidgets.so所需) 但它就在那里:

  • 问题内容: 我尝试使用启动程序,并收到一条错误消息,提示未找到命令“ javaw”。我检查了bin文件夹,但未找到javaw。可能是什么原因? 问题答案: 该实用程序在Linux上不可用或不需要。只需使用。 说明: 在Windows之间的区别,并是,推出一个新的Windows控制台,没有。 在Linux上,该命令不会启动新的控制台,因此不需要变体。

  • 问题内容: 我试图用cmake建立一个项目。这个项目正在使用Java等。问题是在代码处 我收到以下错误: 虽然 输出 怎么会?该错误的原因是什么? 问题答案: 如果您使用的是Linux操作系统,则必须将Java home设置为export

  • Java在k:\test\jre7\bin\Java.exe中,我的jar是k:\test\pllsolver-0.2alpha.jar 此外,我还不知道这是否会成为一个问题,但可执行文件和数据/需要在同一个目录中。我计划稍后做更好的pathing,但我对Windows ENV变量没有一个清晰的理解。

  • 问题内容: 我正在开发一个slackbot。导入slackclient后,我得到了。 我尝试了所有选项并遵循了本文中显示的建议-Python找不到已安装的模块(’slackclient’)。根据这些建议,我安装了Slack,但在导入WebClient时收到以下错误。 我检查了看起来不错的松弛版本 有什么建议我可能做错了什么? 问题答案: 使用slackclient版本2 slackclient =

  • 问题内容: 我通过运行以下命令在centos 7上安装了docker, 注意:helloworld正常运行,没有问题。 但是,当我尝试运行docker-compose(docker- compose.yml存在且有效)时,它仅在Centos上给我错误(Windows版本对于docker-compose文件运行良好) 问题答案: 您还需要安装Docker Compose。请参阅手册。这是您需要执行的