У меня есть 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>
Я пыталсярешить проблему с помощью небольшого Java-класса, имеющего метод main ():
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.Но это уже потому, что консоль null .Но даже если бы я мог получить консоль, я не нашел способа как передать параметры Payara, так и получить экземпляр.Я мог бы либо передать параметры с помощью main () , либо получить экземпляр с помощью bootstrap () , но не оба.Есть идеи?