• jni4net使用小结


    1. 网站首页

    http://jni4net.com/

    1. 一个简单的例子:

    1)      从这里下载binaries,然后解压缩.

    https://sourceforge.net/projects/jni4net/files/

    2)      创建一个.net的console application.

    3)      讲lib目录中的jni4net.n-0.8.8.0.dll和jni4net.j-0.8.8.0.jar分别拷贝到单独的目录和根目录.

     

    4)      在项目中添加jni4net.n-0.8.8.0的引用

     

    5)      在Program.cs中加入如下的代码:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using java.io;

    using java.lang;

    using java.util;

    using net.sf.jni4net;

    using net.sf.jni4net.adaptors;

    namespace Jni4NetTest2

    {

        class Program

        {

            static void Main(string[] args)

            {

                var setup = new BridgeSetup();

                setup.Verbose = true;

                setup.AddAllJarsClassPath("./");

                // create bridge, with default setup

                // it will lookup jni4net.j.jar next to jni4net.n.dll

                Bridge.CreateJVM(new BridgeSetup() { Verbose = true });

               //Bridge.RegisterAssembly(typeof(jni).Assembly);

               

                // here you go!

                java.lang.System.@out.println("Hello Java world!");

                TestNotesExporterInJava();

                Console.ReadLine();

            }

        }

    }

    这个程序运行起来后,就会打印出Hello Java world!的字样.

    1. 上面简单的例子只是使用了jni4net自带的库,如果使用其他的.jar库,就需要使用proxygen工具来生成proxy类.

    如果某个软件支持java接口, 想用里面的某个jar文件的时候,就用如下的命令来生成:

    "C:jni4net-0.8.8.0-bininproxygen.exe" "C:Program Files (x86)<软件目录>[<子目录>]<需要的jar文件名>.jar" -wd "<输出目录>"

    上面用到的jar文件如果依赖于其他的jar文件,运行命令的时候会报类似如下的错误:

    Can't load class <namespace>[.<sub namespace>].<class name>

    这个时候就需要使用-cp或者dp参数.

    比如:

    "C:jni4net-0.8.8.0-bininproxygen.exe" "C:Program Files (x86)<软件目录>[<子目录>]<需要的jar文件名>.jar" -wd "<输出目录>" –cp “c:software1libs”,”c:software2aa.jar”

    -cp参数的写法可能仿照这里的就可以

     https://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html 

    Dp参数还没有研究明白.

    1. 官网给的例子:

    https://github.com/jni4net/jni4net/wiki/Calling-Java-in-C%23

    1. 官网给出的proxy的proxygen用法

    https://github.com/jni4net/jni4net/wiki/Generating-Proxies

  • 相关阅读:
    vue语法 `${ }` (模版字符串)
    Apache HttpClient工具类
    JS —— 数组去重
    HTML5——新增的API
    HTML5——新特性
    HTML5——Svg
    HTML5——多媒体(Audio音频、Video视频)
    CSS3——transform
    CSS3——animation中的属性--steps
    CSS3——动画transition、animation
  • 原文地址:https://www.cnblogs.com/time-is-life/p/8986215.html
Copyright © 2020-2023  润新知