Java windows中内置的Jar不在linux中运行

Java windows中内置的Jar不在linux中运行,java,linux,eclipse,maven,jar,Java,Linux,Eclipse,Maven,Jar,我知道有很多关于SOF的帖子都是关于这个话题的,但我觉得我的问题有点不同 我有一个基于maven的java项目,它使用javaFx。需要创建一个可执行的jar文件,并从命令行或双击jar文件运行它 这就是我构建它的方式,pom.xml文件的相关部分如下 <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <desc

我知道有很多关于SOF的帖子都是关于这个话题的,但我觉得我的问题有点不同

我有一个基于maven的java项目,它使用javaFx。需要创建一个可执行的jar文件,并从命令行或双击jar文件运行它

这就是我构建它的方式,pom.xml文件的相关部分如下

 <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
          <manifest>
           <addClasspath>true</addClasspath>
            <mainClass>com.sumanta.MyMain</mainClass>
          </manifest>

          <manifestEntries>
           <Class-Path>./</Class-Path>
          </manifestEntries>
        </archive>
      </configuration>
   </plugin>
我得到了这个错误

  Error: Could not find or load main class com.sumanta.MyMain
清单文件似乎有问题。该文件列出了包含main方法的类的正确名称以及完整的包路径

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: Ayan
Build-Jdk: 1.8.0_71
Main-Class: com.sumanta.MyMain
Class-Path: ./

此设置有什么问题。我需要应用程序在windows、linux和mac操作系统上运行。我想,由于mac和linux是unix类型的操作系统,如果应用程序在linux上运行,它也将在mac操作系统上运行。

在linux上,通过直接运行主类并将jar包含在类路径
java-cp“;myExecutableJarFile.jar”中,验证您是否能够运行jar文件com.sumanta.MyMain
许多Linux发行版包JavaFX可能与JRE的其余部分分开。请参阅链接问题。
解压-v myExecutableJarFile.jar | grep MyMain
显示了什么?解压后的Linux根文件夹中的com/sumanta文件夹中有两个文件,即MyMain.java和MyMain.class文件,通过直接运行main类并将jar包含在classpath
java-cp;myExecutableJarFile.jar“com.sumanta.MyMain
许多Linux发行版包JavaFX可能与JRE的其余部分分开,验证您是否能够运行jar文件。请参阅链接问题。
unzip-v myExecutableJarFile.jar | grep MyMain
显示了什么?解压后的根文件夹中的com/sumanta文件夹中有两个文件,即MyMain.java和MyMain.class文件
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: Ayan
Build-Jdk: 1.8.0_71
Main-Class: com.sumanta.MyMain
Class-Path: ./