zoukankan      html  css  js  c++  java
  • IKVM.NET_08_开发者指南

    本文内容

    • 概述
    • 概念
    • .NET中使用Java API

    概述

    IKVM.NET 使得可以在 Java 环境下开发 .NET 应用程序,也可以在任何.NET语言编写的应用程序中,使用现存的 Java API 和库。本文对于那些想把 Java 作为首选的 .NET 开发语言,以及那些想在 C# 或 VB.NET 应用程序中使用 Java 类库的那些开发者,提供了一些有益的信息。

    概念

    本小节讨论关于 IKVM.NET 的功能和限制的一些重要概念。

    • 加载字节码
    • 支持调试
    加载字节码

    IKVM.NET 完全支持动态地加载 Java 字节码,无论是运行在 ikvm JVM 上的 Java 应用程序,还是已经利用 ikvmc 转换成 .NET CIL的 Java 应用程序。

    • 已动态地解释 Java 应用程序来加载字节码。

    当你使用 ikvm 运行一个 Java 应用程序时,ikvm 查找并加载 Java 字节码文件,就像 Java 虚拟机一样。

    • 已 ikvmc 编译 Java 应用程序来加载字节码

    当你使用 ikvmc 把一个 Java 应用程序转换成 .NET 公共中间语言时,转换的代码作为 "native" .NET 代码来执行。每个 .NET 程序集(DLL文件)都将拥有它自己的Java字节码装载器的实例(特别是 ikvm.runtime.AssemblyClassLoader 装载器)。这个字节码装载器将通过下面方式加载类:

    1) 首先,查找相应的程序集文件。若这个类在程序集中,那么就找到了。

    2) 再搜索这个程序集直接引用的程序集。也就是这个DLL文件引用的其他DLL文件。

    支持调试

    使用 ikvmc 的 "-debug" 选项把 Java 应用程序转换成公共中间语言时,可以通过标准的 .NET / Mono调试工具调试该 Java 应用程序(javac: -g or jikes: -g:lines,vars,source)。

    .NET 应用程序中使用 Java APIs

    本小节讨论在 .NET 应用程序中使用 Java API。

    • 概述
    • Java 与 .NET 互操作性问题
    • Subclassing Java Code
    概述

    IKVM 使得用 Java APIs 来开发 .NET 应用程序变得非常容易。

    IKVM 是在 .NET 中实现 Java 类库。为了使用 Java APIs,只要将 IKVM.OpenJDK.ClassLibrary.dll 的引用添加到 Mono / .NET 项目即可。

    若想使用 Java APIs,你可以采用下面方法中的一个:

    1) 用 ikvmc 将 Java APIs 转换成 .NET 公共中间语言(CIL)。你就可以把生成的 .NET dll 文件的引用添加到你的项目。

    2) 使用 Java 反射 APIs,通过 IKVM 字节码解释器,来动态加载和执行 Java 字节码。比如,你的应用程序可以通过网络连接来加载Java字节码,并动态执行。

    Java 与 .NET 互操作性问题

    当你在 .NET 语言,如 C#,调用 Java APIs 时,你需要知道如何解决 .NET 与 Java 对象模型之间的差别。例如,Java 和 .NET 都有自己的 String 类,基本的封装类,异常的继承关系等等。你可以使用下面资源。

    1) IKVM WebLog 有很多帮助的条目。

    2) 看下 IKVM 的Demo。

    3) IKVM 源代码是最后的参考资料。

    Subclassing Java Code

    略。

  • 相关阅读:
    CDS是一个企业级的持续交付和DevOps自动化开源平台
    基于VictoriaMetrics的prometheus 集群监控报警方案
    VictoriaMetrics vmalert 重启状态的处理
    karma prometheus alertmanager dashboard简单试用
    kthxbye一种解决prometheus alertmanager 报警确认的守护进程
    karma 一个不错的prometheus alertmanager dashboard
    inversify 强大&&轻量级的基于typescript 的ioc 框架
    VictoriaMetrics vmagent的一些介绍
    VictoriaMetrics vmalert 说明
    VictoriaMetrics vmauth 说明
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2156366.html
Copyright © 2011-2022 走看看