0

我使用 j boss 4.2.2 到最新版本。我使用 java 开发工具包 1.5 到 1.7 最新版本所有 j boss 版本获取所有 java 开发工具包。如何通过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,我找到了两种方法:

方式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;
}

}

方式2

我发现谷歌搜索但我没有亲自验证的另一个选项是通过 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 网站仍然发送到一个过时的链接)

于 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 回答