Java 如何创建自定义JVM启动器?
“如何在没有主方法的情况下启动应用程序”的问题由来已久,大多数问题都是“你不能”这样的。我注意到现在只需扩展Java 如何创建自定义JVM启动器?,java,jvm,launcher,Java,Jvm,Launcher,“如何在没有主方法的情况下启动应用程序”的问题由来已久,大多数问题都是“你不能”这样的。我注意到现在只需扩展应用程序就可以启动JavaFX应用程序。我一直在使用类似于Application.launch()的方法,但在这种情况下,我总是将主方法视为样板代码。于是我又开始寻找答案 我发现我们可以从中了解如何创建自己的JVM启动器,但遗憾的是,这篇文章已经不存在了。我花了很长时间寻找任何可能暗示我应该做什么的东西,但没有结果 我的问题 如何创建一个定制的JVM启动器来根据扩展的内容启动应用程序?例如
应用程序
就可以启动JavaFX应用程序。我一直在使用类似于Application.launch()
的方法,但在这种情况下,我总是将主方法视为样板代码。于是我又开始寻找答案
我发现我们可以从中了解如何创建自己的JVM启动器,但遗憾的是,这篇文章已经不存在了。我花了很长时间寻找任何可能暗示我应该做什么的东西,但没有结果
我的问题
如何创建一个定制的JVM启动器来根据扩展的内容启动应用程序?例如,假设一个项目有一个声明的类:
class MyApplcation extends App {
}
项目启动不需要主要方法,因为它扩展了应用程序。这不是问题,尽管这是我的目标。问题是如何创建自定义JVM启动器
我的猜测是,这将涉及使用某种基础,为我们提供某种框架,但我不确定在哪里可以找到这样的东西。JavaFX如何实现其应用程序执行模型 可以启动不包含main方法的JavaFX应用程序,因为实现了 这是对openjdk启动器逻辑的修改,以检查要启动的类是否扩展了应用程序,如果是,则调用特定于JavaFX的启动器,该启动器启动Java运行时和相关线程,创建GUI窗口(JavaFX术语为Stage),然后,创建了avaFX应用程序的实例,并根据调用了应用程序上的init和start方法 通过以下代码跟踪实现:
com.mycompany.MyApplication
:
java -Xbootclasspath/p <launcher class directory> com.mycompany.MyApplication
java-Xbootclasspath/p com.mycompany.MyApplication