0

j Boss 4.2.2 から最新バージョンまでを使用しています。Java 開発キット 1.5 から 1.7 までの最新バージョンをすべて J Boss バージョンで使用しています。Java コードで J Boss バージョンを取得する方法。

4

2 に答える 2

2

5 にはプロパティ ファイルがあります: /org/jboss/version.properties キー version.major および version.minor がケースを探します。ファイルをプロパティにロードして読み取る必要があります。以下のリンクを参照してください。

http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.jbossas/jboss-as-main/5.0.0.CR2/org/jboss/version.properties

このファイルは jboss6.1 でも保持されています。

http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.jbossas/jboss-as-main/6.1.0.Final/org/jboss/version.properties? av=f

あなたがjboss7を求めていることに気づきました....しかし、役立つ場合に備えて、私が行った作業を残します(とにかく、5および6バージョンで有効なアプローチです)jboss7の場合、2つの方法を見つけました:

方法1
github からコードをチェックアウトすると、ソースにこの Versoin.properties が見つかりません。しかし、バージョンとリリース コード名をプロパティとして格納する Version.class を見つけることができました。ソースコードからわかるように、 Version.AS_VERSION を使用して必要なものを取得できます。

    public class Version {
        public static final String AS_VERSION;
        public static final String AS_RELEASE_CODENAME;
        public static final int MANAGEMENT_MAJOR_VERSION = 1;
        public static final int MANAGEMENT_MINOR_VERSION = 4;
        public static final int MANAGEMENT_MICRO_VERSION = 0;

        static {
            InputStream stream =         Version.class.getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF");
            Manifest manifest = null;
            try {
                if (stream != null)
                    manifest = new Manifest(stream);
            } catch (Exception e) {
            }

            String version = null, code = version;
            if (manifest != null) {
                version = manifest.getMainAttributes().getValue("JBossAS-Release-        Version");
        code = manifest.getMainAttributes().getValue("JBossAS-Release-Codename");
    }
    if (version == null) {
        version = "Unknown";
    }
    if (code == null) {
        code = "Unknown";
    }

    AS_VERSION = version;
    AS_RELEASE_CODENAME = code;
}

}

WAY2

グーグルで見つけたが、個人的には確認していない別のオプションは、JMX を使用することです (おそらく、このアプローチを好むでしょう)。

    ModelControllerClient client = ModelControllerClient.Factory.create(InetAddress.getByName("localhost"), 9999);  
    ModelNode op = new ModelNode();  
    op.get(ClientConstants.OP).set("read-resource");  

    ModelNode returnVal = client.execute(op);  
    logger.info("release-version: " + returnVal.get("result").get("release-version").asString());  
    logger.info("release-codename: " + returnVal.get("result").get("release-codename").asString());  

また、jboss-admin コマンドライン インターフェイスから、次のコマンドから情報を取得できます。 /:re​​ad-attribute(name=release-version)
/:re​​ad-attribute(name=release-codename)

ノート:

ソースコードは git clone https://github.com/wildfly/wildfly.gitの下にあります (jboss Web サイトはまだ古いリンクに送信されます)。

于 2013-09-03T07:01:28.273 に答える
0

このチュートリアルを試してください: https://community.jboss.org/thread/176932?start=0&tstart=0

またはこれ:プログラムで JBoss AS 5.1 のバージョンを取得するにはどうすればよいですか?

于 2013-09-03T06:45:33.703 に答える