【问题标题】:Cannot run Launch4j (illegal access)无法运行 Launch4j(非法访问)
【发布时间】:2020-11-19 01:19:48
【问题描述】:

我想为我的 java 桌面应用程序创建一个 .exe 文件。 因此,我发现 Launch4j 是最好的选择。

我跑的时候。该文件,我有以下错误消息。

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/usr/local/Cellar/launch4j/3.12/libexec/lib/xstream.jar) to field java.util.Properties.defaults
WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsLookAndFeel
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) 
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) 
    at net.sf.launch4j.Main.main(Main.java:59) Caused by: java.lang.ClassNotFoundException: com.sun.java.swing.plaf.windows.WindowsLookAndFeel 
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)   
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)  ... 10 more

我在 Mac OS Catalina 版本 10.15.3 下工作。 和我的Java版本环境: openjdk 版本“11.0.7” 2020-04-14 OpenJDK 运行时环境 AdoptOpenJDK (build 11.0.7+10) OpenJDK 64-Bit Server VM AdoptOpenJDK(build 11.0.7+10,混合模式)

如果您有任何其他程序可以完成这项工作,我会很高兴知道。 事实上,我正在为两个操作系统(Windows 和 Mac)寻找与 InnoSetup 等效的东西

感谢您的帮助

【问题讨论】:

    标签: java jar exe launch4j packager


    【解决方案1】:

    我遇到了同样的错误,发现您的问题正在寻找解决方案。

    我最终通过从https://jdk.java.net/archive/ 的存档下载 openJDK 9.0.4 来运行 launch4j。

    使用此 java 版本手动运行 launch4j.jar 可以正常工作:

    jdk-9.0.4.jdk/Contents/Home/bin/java -jar ~/Downloads/launch4j/launch4j.jar 
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 java 11 和 Linux,请下载并安装另一个 java 版本。我安装了 java 8。

      运行命令“sudo update-alternatives --config java”列出您计算机中安装的所有java版本。该命令将提供更改默认 java 版本的选项。

      从 11 更改为 8(不确定是否有其他版本可以使用)。

      重新运行命令 java -jar launch4j。它应该工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-06
        • 2011-12-29
        • 2021-08-07
        • 1970-01-01
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多