如何使用JVM / JNI从C ++代码调用jboss-modules.jar

时间:2019-02-05 17:31:56

标签: c++ jnienv jboss-modules jniwrapper jboss-messaging

我有类似下面的内容,它正在java.exe上执行。

"C:\Program Files\jre\bin\java.exe"  
-Djboss.home.dir="C:\Program Files\wildfly" -Djboss.modules.system.pkgs=org.jboss.byteman -Dlogging.configuration=file:"C:\Program Files\wildfly\standalone\configuration\logging.properties" -Dorg.jboss.boot.log.file="C:\Program Files\wildfly\standalone\log\server.log" -Dprogram.name=jboss  
-Xmx3048m -Xms256m -classpath "C:\Program Files\jre\lib\tools.jar"; 
-jar "C:\Program Files\wildfly\jboss-modules.jar" 
-mp "C:\Program Files\wildfly\modules" org.jboss.as.standalone 
-c standalone-full.xml
 -b 0.0.0.0 -bmanagement 0.0.0.0 
-Dlog.server.port=12141 -Dlog.server.ip=0.0.0.0

我想像上面那样调用,但是我想使用C ++代码而不是java.exe来调用它。

我尝试了JNI包装器调用,但无法执行。 我面临的一个问题

如果您看到jboss-modules.jar的main.class,它没有采用“ -c”选项,并且如果我将其作为参数传递,则它将问题显示为无效选项, 代码示例如下:

char* my_arg[] = {"-mp", "C:/\Program 
 Files/\wildfly/\modules","org.jboss.as.standalone","-c","standalone-full.xml"}; 
for( int i=0; i < 3; i++ ) 
{ str = psJNIEnv->NewStringUTF(my_arg[i] );
 psJNIEnv->SetObjectArrayElement(arr, i, str); 
} 
psJNIEnv->CallStaticVoidMethod(jcJclass, jmMainMethod, arr);

0 个答案:

没有答案