5

我是一名 Java 开发人员。但是,出于某种原因,我必须借助 C# 来完成我的任务。我在下面提到了用于创建 DLL 的 C# 代码。必须在我的 Java 程序中使用该 DLL 才能完成必要的工作。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Word;

namespace Yrl.Tracingtool
{
public class DocxUtil
{
    public Application Jump(string fileName)
    {

        object fileNameAsObject = (object)fileName;
        Application wordApplication;
        try
        {
            wordApplication = new Application();
            object readnly = false;
            object missing = System.Reflection.Missing.Value;
            wordApplication.Documents.Open(ref fileNameAsObject, ref missing, ref readnly, ref missing,
                                            ref missing, ref missing, ref missing, ref missing,
                                            ref missing, ref missing, ref missing, ref missing,
                                            ref missing, ref missing, ref missing, ref missing);
            object what = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage;
            object which = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToFirst;
            object count = 3;

            wordApplication.Selection.GoTo(ref what, ref which, ref count, ref missing);

            return wordApplication;
        }
        catch (Exception ex)
        {
            //LogEntry log = new LogEntry();
            //log.Categories.Add("Trace");
            //log.Message = ex.ToString();
            //Logger.Write(log, "Trace");
            throw new System.IO.FileLoadException("File cannot be opened");
        }
        finally
        {
            wordApplication = null;
        }
    }
}
}

我也查看过这个论坛和其他论坛,但大多数都在谈论在 JNI 调用中使用 C++ 或 C DLL 文件。如果有人知道从 Java 调用 C# DLL,请告诉我。

4

2 回答 2

2

我们使用ICE在 .NET 和 Java 应用程序之间进行通信。这不完全是您所需要的,但可能会有所帮助。

另外我建议使用谷歌搜索“.NET Java 桥” - 有几个框架(jni4net、JNBridge 等)

于 2012-06-11T09:23:08.080 回答
0

您可能必须使用 JNI。

JNI 是 Java Native Interface 的缩写。使用 JNI,我们可以从 Java 调用用其他语言编写的函数

看看下面

http://www.codeproject.com/Articles/2876/JNI-Basics-1

于 2012-06-11T09:18:39.197 回答