Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling C# dll from Java

I am a Java developer. But, for some reason I have to take the help of C# to accomplish my task. I have below mentioned C# code which is used to create a DLL. That DLL has to be used in my Java program to do the needful.

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;
        }
    }
}
}

I have checked this forum and other forums too, but most of them talk about using a C++ or C DLL file in a JNI call. If anyone is having knowledge of calling C# DLL from Java please let me know.

like image 576
rajshekhar Avatar asked Nov 04 '22 22:11

rajshekhar


1 Answers

We use ICE to communicate between .NET and Java apps. It is not exactly what you need but might help.

Also I'd recommend googling ".NET Java bridge" - there are several frameworks for this (jni4net, JNBridge etc)

like image 96
olldman Avatar answered Nov 09 '22 05:11

olldman