//开启JMX远程访问接口 java.lang.System.setProperty("com.sun.management.jmxremote", "true"); java.lang.System.setProperty("com.sun.management.jmxremote.authenticate", "false"); java.lang.System.setProperty("com.sun.management.jmxremote.ssl", "false"); java.lang.System.setProperty("com.sun.management.jmxremote.port", "9999"); sun.management.Agent.startAgent(); //注册MBean MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); TestService svc = new TestService(); ObjectName name = new ObjectName("testjmx:type=TestService"); mbs.registerMBean(new StandardMBean(svc, typeof(TestMXBean)), name);
关键是这句: mbs.registerMBean(new StandardMBean(svc, typeof(TestMXBean)), name);
为管理对象提供一个StandardMBean代理,这个代理是在我们自己的程序集(dll或exe)中创建的,它能正确的调用重载接口的方法。是通过跟踪JDK自带管理MBean的创建过程发现的。
如果没有用StandardMBean封装,像Java中那样直接注册,会抛出javax.management.NotCompliantMBeanException异常
...
注:
有同学建议看了一篇参考文章,似乎是因为MBean是为基础类型准备的,而Java的基础类型在.NET平台IKVM下已经不是基础类型了,所以需要用MXBean代理,或者StandardMBean封装
https://blogs.oracle.com/jmxetc/entry/javax_management_standardmbean_when_and
相关推荐
解压ikvm-0.40.0.1.zip,并将%IKVM_HOME%\bin添加到path中。此处的%IKVM_HOME%是指解压后ikvm的主目录。 b:建立一个JavaProject,自定义包、类、需要透露给外界的方法,然后、将这个JavaProject打包成jar文件。...
- 在.NET应用中,可以使用`Assembly.LoadFrom`方法加载生成的DLL,并调用其中的Java类和方法。 5. **ikvm命令.txt** - 这个文件很可能包含了关于如何使用ikvm命令的详细说明和示例,包括可能的选项和参数。 6. *...
标题中的"C# IKVM 生成 java AES 密钥并加解密"是指在C#项目中,通过IKVM调用Java的AES加密算法来生成密钥并进行数据的加解密。AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,适用于保护大量...
Java 8引入了许多重要的新特性,如lambda表达式、方法引用来支持函数式编程,以及Stream API,这些都可以通过IKVM.NET在.NET环境中使用。 在实际应用中,IKVM.NET的使用流程大致如下: 1. 下载并安装IKVM.NET的相应...
4. **调用Java代码**:在C#代码中,你可以通过IKVM提供的类型转换来调用Java类和方法。例如,如果你有一个Java类`com.example.MyClass`,在.NET中你可以使用`MyClass myInstance = (MyClass)System.Type.GetType(...
IKVM.NET实现了.NET版的JNI,使得.NET程序可以通过IKVM调用Java的本地方法。 4. DLL生成:IKVM.NET提供了一个工具ikvmc,可以将.jar文件转换为.dll文件。这个过程不仅仅是简单的重打包,还包括了上述的字节码转换和...
IKVM(IronJava Virtual Machine)是一个开源项目,它实现了Java虚拟机(JVM)和Java类库,并将它们集成到.NET Framework中。这样,开发者可以在.NET环境中运行Java应用程序,同时也能利用.NET平台的特性和资源。这...
总的来说,IKVM提供了一种将Java世界和.NET世界融合的方法,让开发人员可以利用两个平台的优点。但需要注意的是,虽然它提供了一种便利,但在某些情况下,直接用.NET重写Java代码可能会更稳定和高效。
4. 使用C#代码调用Java库中的类和方法,IKVM.NET会自动处理类型转换和调用过程。 需要注意的是,虽然IKVM.NET提供了一个方便的桥梁,但并非所有的Java库都能完美地在.NET上运行,因为有些库可能依赖于特定的JVM特性...
IKVM是一种开源项目,全称为"IKVM.NET",它实现了Java虚拟机(JVM)并将其集成到.NET Framework中,使得.NET开发者可以利用Java库和程序在C#等.NET语言中运行。这个资源包“ikvm资源及测试包”显然是针对想要在C#...
2. **配置环境变量**:下载完成后,为了使系统能够识别并使用IKVM,需要将IKVM的安装路径添加到系统的PATH环境变量中。这样,你可以在命令行中直接运行IKVM的工具,如ikvmc(IKVM编译器)。 3. **使用ikvmc编译器**...
IKVM.NET是由Jurgen Hoeller创建的开源项目,它的主要目的是将Java虚拟机(JVM)和Java类库移植到.NET Framework上,从而使得.NET开发者能够使用Java类库,并且能够直接在C#或其他.NET语言中调用Java代码。...
在提供的压缩包文件中,"DLL工具.exe"可能是一个用于操作dll文件的实用程序,比如查看、注册或卸载dll;"DLL之家.htm"可能是一个关于dll文件的指南或文档,提供dll的相关知识和使用方法;而"X86"和"X64"两个目录可能...
IKVM.NET是一个开源项目,由Glenn Block创建,它的全称是"Java for .NET",旨在为...通过下载和使用"ikvm-7.2.4630.5.rar",你可以体验到这个工具的功能,并将其应用于你的.NET项目中,实现Java和.NET之间的无缝连接。
2. **API桥接**:ikvm提供了C#与Java API之间的映射,使得C#开发者可以通过.NET接口直接调用Java方法,反之亦然。这种桥接机制简化了跨语言编程的复杂性。 3. **性能优化**:ikvm不仅实现了Java虚拟机的功能,还在...
IKVM(Java for .NET)是一个开源项目,它实现了Java虚拟机(JVM)和Java类库,使得Java程序可以在.NET环境中运行。标题中的"IKVM-8.8.0-bin-net6.0"指的是该版本是专为.NET 6框架优化的IKVM发布版,意味着它可以...
IKVM(全称:Java to .NET Virtual Machine)是一个开源项目,它的主要目标是实现Java虚拟机(JVM)并提供一个.NET Framework的Java类库实现,使得Java应用程序能够在.NET平台上运行。这个项目由Glenn Block发起,并...
值得注意的是,虽然IKVM提供了一种跨平台的方法来整合Java和.NET,但并不是所有Java库都与IKVM完全兼容,一些依赖于Java特定特性或者JNI(Java Native Interface)的库可能无法正常工作。此外,IKVM项目自2014年以来...
Ikvm工具是一个非常实用的软件开发工具,尤其对于那些需要在C#, C++或其它.NET环境中集成Java库的开发者来说。这个工具的核心功能是将Java的`.jar`文件转换为.NET的`.dll`动态链接库,使得.NET应用程序可以直接调用...
通过下载并解压此RAR文件,用户可以获得IKVM的执行文件,从而在.NET平台上运行基于Java 8的程序。 描述中提到,用户可以将这个压缩包解压到任意路径,然后进入“bin”文件夹。在这个文件夹里,IKVM提供了命令行工具...