答案 0 :(得分:2)
有5个属性文件:/org/jboss/version.properties其中的密钥version.major和version.minor查找您的案例。将文件持续加载到Properties并读取。请参阅以下链接:
此文件也保存在jboss6.1
中我意识到你要求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;
}
}
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命令行界面,您可以从这些命令获取信息:
/:只读属性(名称=释放的版本)
/:read-attribute(name = release-codename)
注意:
源代码现在在git clone https://github.com/wildfly/wildfly.git下(jboss网站仍然发送到过时的链接)
答案 1 :(得分:0)