我有类似下面的东西,它正在 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
我想调用与上面相同的方法,但不是 java.exe ,而是我想使用 C++ 代码调用它。
我尝试使用 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);