如何从Ant构建脚本启动和停止Payara Micro?

时间:2018-11-23 13:57:36

标签: java ant console payara-micro

我有一个Ant build.xml,它使用一个用于部署前和部署后的参数来启动Payara Micro 5.183实例。要停止该实例,我必须终止其Java进程。我想调用它的关闭方法。

我正在使用Open JDK 11.0.1

这是相关的build.xml:

<target name="start payara micro">
    <java classname="fish.payara.micro.PayaraMicro" classpathref="payara.classpath" dir="${payara.micro.home}" fork="true">
        <arg line="--prebootcommandfile ${payara.micro.home}/conf/pre-boot.asadmin --postdeploycommandfile ${payara.micro.home}/conf/post-deploy.asadmin --deploy ${payara.micro.home}/activemq-rar --noCluster --domainConfig ${payara.micro.home}/conf/domain.xml"/>
        <jvmarg line="--add-opens java.naming/javax.naming.spi=ALL-UNNAMED --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize --illegal-access=deny"/>
    </java>
</target>

我试图通过一个具有main()方法的小型Java类来解决该问题:

public static void main( String[] args ) throws BootstrapException {
    Console console = System.console();
    if ( console == null ) {
        System.err.println(
                "Cannot obtain a console. No interactive environment. Aborting" );
        System.exit( -1 );
    }

    // --- Start Payara with given parameters
    PayaraMicro.main( args );

    // --- Start Payara Micro How do I give params?
    PayaraMicro instance = PayaraMicro.getInstance();
    PayaraMicroRuntime runtime = instance.bootStrap();

    String input = null;
    while ( (input == null) || (input.equals( "x" ) == false) ) {
        input = console.readLine( "Enter 'x' to exit" );
    }
}

我用Java类名替换了构建脚本中的类名,并启动了Ant。但这已经是因为console为 null 。但是,即使我可以获得控制台,也没有找到将参数传递给Payara并获得实例的方法。我可以使用 main()来传递参数,也可以使用 bootstrap()来获取实例,但不能同时使用两者。有什么想法吗?

0 个答案:

没有答案