Intellij idea IntelliJ工件生成未从终端运行

Intellij idea IntelliJ工件生成未从终端运行,intellij-idea,javafx,executable-jar,artifact,Intellij Idea,Javafx,Executable Jar,Artifact,我正在用IntelliJ Idea社区版运行Ubuntu16.04 LTS 完成桌面应用程序后,我希望导出以作为独立应用程序运行。我已经安装了JRE9 遵循中的快速60秒教程,该教程与IntelliJ网站教程相同 所以我转到项目结构,工件,添加,转到JavaFX选项卡,选择主类,好的,构建工件,打开包含的文件夹,然后 双击.jar文件表示它不是可执行文件,所以我使用chmod+x file.jar使其可执行,但仍然没有运行 因此,在终端中,我转到目录并键入java-jar file.jar,但这

我正在用IntelliJ Idea社区版运行Ubuntu16.04 LTS

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

遵循中的快速60秒教程,该教程与IntelliJ网站教程相同

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

双击.jar文件表示它不是可执行文件,所以我使用chmod+x file.jar使其可执行,但仍然没有运行

因此,在终端中,我转到目录并键入java-jar file.jar,但这表示错误:找不到或加载主类sample.main

但是我已经在工件窗口中选择了主类

有没有办法解决这个问题?谢谢

更新

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

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文件

真是一场噩梦。我的系统上似乎安装了两个JDK,我的IntelliJ项目设置为使用JDK9.0.4。我的Linux系统默认为其他版本

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


浪费了两天。

这不是文件权限问题。这是一个java无法使用sample.Main作为程序入口点的问题。该类是否包含具有正确签名的main方法?@fabian.jar文件包含一个名为sample的文件夹,其中有一个名为main.class的类文件。为了进一步研究,我将.jar文件提取到一个常规目录结构中,并直接导航到示例文件夹中,java Main.class甚至不会执行。所以我做了一些挖掘。可能是因为示例。Main找不到我正在使用的两个库?因此,在projectstructure/Artifact文件夹中,我双击了右侧的所有.jar依赖项,然后它们出现在build.jar文件中,并重新构建。但是这也不行。你可以做一些像javap-v Main.class | find public static void Main这样的事情来检查该类中的Main方法,或者只是查看源代码。。。无法加载引用的类将导致提及无法加载的类时出错…@fabian如果我在提取的目录结构中键入javap-v Main.class | find public static void Main,在示例内部,它说find:'public static void Main':没有这样的文件或目录:-/。。。但是在我的Main.java文件中肯定有以下函数:publicstaticvoidmainstring[]args{launchargs;}@Antinous-See,and。