Tôi là một nhà phát triển Java. Nhưng, vì một lý do nào đó tôi phải nhận sự giúp đỡ của C# để hoàn thành nhiệm vụ của mình. Tôi đã đề cập dưới đây C# mã được sử dụng để tạo ra một DLL. DLL đó phải được sử dụng trong chương trình Java của tôi để làm việc cần thiết.Gọi C# dll từ Java
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;
}
}
}
}
Tôi đã kiểm tra diễn đàn này và các diễn đàn khác, nhưng hầu hết trong số họ nói về việc sử dụng tệp C++ hoặc C DLL trong cuộc gọi JNI. Nếu bất cứ ai có kiến thức về việc gọi C# DLL từ Java, hãy cho tôi biết.
Tôi nghĩ rằng bạn sẽ phải sử dụng COM? Có thể sai? – Liam
@duffymo Tôi không nghĩ vậy. Bài viết đó không có bất kỳ thông tin nào về C# DLL. – rajshekhar
Có một API Java cho dự án Microsoft Documents trên Apache, [Apache POI] (http://poi.apache.org/). Đây có phải là một thay thế cho việc trộn Java và C#? (Cấp, tôi không có kinh nghiệm sử dụng _Apache POI_ bản thân mình.) –