【问题标题】:Multiple entry point (mainclass) for application client jar应用程序客户端 jar 的多个入口点(主类)
【发布时间】:2009-08-12 15:07:06
【问题描述】:

如何在应用程序客户端 jar 中设置多个入口点?

我正在使用 Glassfish 应用服务器。我可以使用

 asadmin get-client-stubs --appname APPLICATION_NAME .

我目前可以运行我在 MANIFEST.MF 中指定的默认主类。但是,我希望能够在运行时指定另一个主类。

appclient -client MYJAR.jar -mainclass com.mystuff.Main1
and
appclient -client MYJAR.jar -mainclass com.mystuff.Main2

Main1 和 Main2 都有“public static void main”入口点。

如果我指定一个不在 MANIFEST.MF 中的主类,我会得到以下异常:

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: Could not locate an embedded app client matching the main class name

我是否需要进行任何更改才能让 appclient 引用其他主类?

【问题讨论】:

    标签: java jar glassfish application-client


    【解决方案1】:

    http://forums.java.net/jive/thread.jspa?threadID=65549&tstart=0

    你好。

    GlassFish 应用程序客户端容器使用 -mainclass 选项来区分打包到同一个 EAR 中的多个客户端,因此,在启动时,用户可以选择打包在一起的多个客户端中的哪一个来启动。正如您所发现的,它不允许用户覆盖开发人员关于在给定客户端中运行的主类的意图。

    您可以使用 v3 中提供的备用 appclient 语法做您想做的事:

    http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view

    对于 v2,您当然可以编写单个主类来接受指定要运行的类的参数,然后动态加载该类并调用其 main 方法。

    -蒂姆

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多