GlassFish Application Server 使用脚本 asadmin.bat 来启动 JVM。
我想在远程机器上使用来自 Java 的 jinterop 和 DCOM 调用这个脚本。我找不到有关此特定用法的任何帮助。任何帮助将不胜感激。
GlassFish Application Server 使用脚本 asadmin.bat 来启动 JVM。
我想在远程机器上使用来自 Java 的 jinterop 和 DCOM 调用这个脚本。我找不到有关此特定用法的任何帮助。任何帮助将不胜感激。
我使用 Windows Scripting Host Shell 在远程计算机上执行某些程序或批处理。
代码如下所示:
// Create a session
JISession session = JISession.createSession(<domain>, <user>, <password>);
session.useSessionSecurity(true);
// Execute command
JIComServer comStub = new JIComServer(JIProgId.valueOf("WScript.Shell"),<IP>, session);
IJIComObject unknown = comStub.createInstance();
final IJIDispatch shell = (IJIDispatch)JIObjectFactory.narrowObject((IJIComObject)unknown.queryInterface(IJIDispatch.I ID));
JIVariant results[] = shell.callMethodA("Exec", new Object[]{new JIString("%comspec% /c asadmin.bat" )});
如果您需要批处理的输出,您可以使用 StdOut 来读取它。
JIVariant stdOutJIVariant = wbemObjectSet_dispatch.get("StdOut");
IJIDispatch stdOut = (IJIDispatch)JIObjectFactory.narrowObject(stdOutJIVariant.getObjectAsComObject());
// Read all from stdOut
while(!((JIVariant)stdOut.get("AtEndOfStream")).getObjectAsBoolean()){
System.out.println(stdOut.callMethodA("ReadAll").getObjectAsString().getString());
}