【问题标题】:Java Eclipse executable jar fileJava Eclipse 可执行 jar 文件
【发布时间】:2015-07-30 01:10:47
【问题描述】:

我是 eclipse + Java 的新手。我正在尝试使用 eclipse 创建可执行的 jar 文件 导出选项。它工作得很好。但在我的项目中,我有近 10 个包(我自己的)和 4 个主要类。我想创建一个可执行的 jar 文件,它可以执行 4 个主类中的任何一个主类。

例如:双击写入类名并运行该类

【问题讨论】:

  • 你将如何确定要运行哪个类?
  • 如果我可以在运行时传递参数来告诉类名。可能吗?对不起,我不是 java 向导 :(

标签: java jar executable-jar


【解决方案1】:

不要使用可执行的 jar。而是创建一个包含已编译类的普通 jar。

从命令行,调用您想要调用的任何主类作为 java jar 命令的参数。

java -jar test.jar com.company.unit.MainClass1

java -jar test.jar com.company.unit.MainClass2

【讨论】:

    【解决方案2】:

    可执行的 JAR 不是这样工作的。他们在 JAR 中编写了一个清单文件,该文件声明了主类的位置,并运行该主类。您必须创建 4 个不同的 JAR。

    或者,您可以只创建一个主类,让您键入您想要的四个中的哪一个,然后让它执行那个。基本上,您将自己模仿您正在寻找的功能。

    【讨论】:

    • 您好,感谢您的回复。我试过你的解决方案。但是,我不是做这样的晚餐主班的专家。你能提供伪代码吗?
    【解决方案3】:

    只是一个关于如何处理命令行选项以启动不同事物的快速示例,我会将其放入对@serplat 答案的回复中,但我无法对其进行格式化。

    public static void main(String[] args)
    {
        if(args.length == 0) {
            // Do default here--no options specified
        } else if(args.length > 2) {
            // Complain that there are too many args, or implement multi-args
        } else // known just one arg
           if(args[1].equals("option1") {
               // call the main of your first app
           } else if(args[1].equals("option2") {
               // start your second app
          ...
       }
    }
    

    有更好的方法来处理命令行的东西,但这是可以理解的,应该做你需要的。稍后您可能会研究更灵活的东西。

    【讨论】:

      【解决方案4】:

      我最近制作了一个教程,向您展示如何创建一个可执行 jar 文件,该文件将在 Windows、Mac OSX 和 Linux 中双击运行。对于我的项目,我打包了一个我制作的漂亮的图书馆游戏。希望对您有所帮助。

      http://aramk.com/blog/2010/12/05/how-to-make-a-multi-platform-executable-java-jar-file/

      【讨论】:

      • 这个链接好像失效了?如果有其他链接,您可以提供 Aram?
      猜你喜欢
      • 1970-01-01
      • 2014-05-09
      • 2012-05-04
      • 2011-12-30
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多