我是 eclipse + Java 的新手。我正在尝试使用 eclipse 导出选项创建可执行 jar 文件。它工作得很好。但在我的项目中,我有近 10 个包(我自己的)和 4 个主要类。我想创建一个可执行的 jar 文件,它可以执行 4 个主类中的任何一个主类。
例如:双击写入类名并运行该类
我是 eclipse + Java 的新手。我正在尝试使用 eclipse 导出选项创建可执行 jar 文件。它工作得很好。但在我的项目中,我有近 10 个包(我自己的)和 4 个主要类。我想创建一个可执行的 jar 文件,它可以执行 4 个主类中的任何一个主类。
例如:双击写入类名并运行该类
不要使用可执行jar。而是创建一个包含已编译类的普通 jar。
从命令行,调用您想要调用的任何主类作为 java jar 命令的参数。
java -jar test.jar com.company.unit.MainClass1
java -jar test.jar com.company.unit.MainClass2
可执行的 JAR 不是这样工作的。他们在 JAR 中编写了一个清单文件,该文件声明了主类的位置,并运行该主类。您必须创建 4 个不同的 JAR。
或者,您可以只创建一个主类,让您键入您想要的四个中的哪一个,然后让它执行那个。基本上,您将自己模仿您正在寻找的功能。
只是一个如何处理命令行选项以启动不同事物的快速示例,我会将其放入对@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
...
}
}
有更好的方法来处理命令行的东西,但这是可以理解的,应该做你需要的。稍后您可能会研究更灵活的东西。
我最近制作了一个教程,向您展示了如何创建一个可执行的 jar 文件,该文件将在 Windows、Mac OSX 和 Linux 中双击运行。对于我的项目,我打包了一个我制作的漂亮的图书馆游戏。希望能帮助到你。
http://aramk.com/blog/2010/12/05/how-to-make-a-multi-platform-executable-java-jar-file/