【问题标题】:IntelliJ artifact build not running from terminalIntelliJ 工件构建未从终端运行
【发布时间】:2018-04-30 15:52:29
【问题描述】:

我正在运行带有 IntelliJ Idea 社区版的 Ubuntu 16.04 LTS。

完成我的桌面应用程序后,我希望导出以作为独立应用程序运行。我已经安装了 JRE9。

遵循this video 中的 60 秒快速教程,这也与 IntelliJ 网站教程相同。

所以我转到项目结构、工件、添加、转到 JavaFX 选项卡,选择主类,好的,构建工件,打开包含文件夹并...

双击 .jar 文件说它不可执行,所以我chmod +x file.jar 使其可执行,但仍然无法运行。

所以在终端中,我转到目录并输入 java -jar file.jar 但上面写着 Error: Could not find or load main class sample.Main

但是我已经在 Artifact 窗口中选择了主类。

任何想法如何解决这个问题?谢谢。

更新

我的目录/文件/文件内容结构如下:

WorkingDirectory
    Myjar.jar
        META-INF
            MANIFEST.MF
                Manifest-Version: 1.0
                Created-By: JavaFX Packager
                Main-Class: sample.Main
                Class-Path: 
                Permissions: sandbox
                JavaFX-Version: 9.0.4
        sample
            Main.class
                public static void main(String[] args) { launch(args); }
    MyLib1.jar
    MyLib2.jar

我也有.jar 文件

【问题讨论】:

  • 这不是文件权限问题。这是java无法使用sample.Main作为程序入口点的问题。此类是否包含具有正确签名的 main 方法?
  • @fabian .jar 文件包含一个名为sample 的文件夹,其中有一个名为Main.class 的类文件。为了进一步调查,我将.jar 文件提取到常规目录结构中,并直接导航到sample 文件夹,java Main.class 甚至不会执行。所以我做了一些挖掘。也许是因为sample.Main 找不到我正在使用的两个库?因此,在 Project Structure / Artifact 文件夹中,我双击右侧的所有 .jar 依赖项,然后它们出现在我的构建 .jar 文件中,并重新构建。但这也不起作用。
  • 您可以执行javap -v Main.class | find "public static void main" 之类的操作来检查该类中的主要方法(或简单地查看源代码)...无法加载引用的类应该会导致错误提示无法加载的类...
  • @fabian 如果我在提取的目录结构中键入javap -v Main.class | find "public static void main",在sample 内,它会显示find: ‘public static void main’: No such file or directory :-/ ...但在我的Main.java 文件中肯定有以下函数:public static void main(String[] args) { launch(args); }

标签: intellij-idea javafx executable-jar artifact


【解决方案1】:

真是一场噩梦。看来我的系统上安装了两个 JDK,并且我的 IntelliJ 项目设置为使用 JDK 9.0.4。我的 Linux 系统默认使用其他版本。

所以我最后只需要输入/opt/jdk-9.0.4/bin/java -jar JavaFXApp.jar

浪费了两天时间。

【讨论】:

    猜你喜欢
    • 2012-09-02
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2020-01-04
    • 2015-04-19
    • 1970-01-01
    相关资源
    最近更新 更多