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());
}