Click here to Skip to main content
15,881,248 members
Articles / Programming Languages / Java

How To Use Java Packages In .NET

Rate me:
Please Sign up or sign in to vote.
4.52/5 (8 votes)
17 May 2013CPOL2 min read 25.2K   20   5
This tip is about how to use Java packages in .NET using IKVM.NET

Introduction

In this tip, I am going to describe how to use Java Packages in .NET using IKVM.NET. In my previous tip, I have briefly described all about IKVM.NET. So before reading this tip, you can refer to that one. IKVM.NET provides this facility with the help of OpenJDK Project.

Using the Code

So for using IKVM.NET library, first of all you have to download it from here. After downloading IKVM.NET , unzip the file. You can see the following folders and files inside unzip file.

Image 1

Now suppose you are creating a project in C#.NET and you want to use Java packages in this project, then we need to add reference of the package which is required. For each package, there is a separate DLL file so you can add any package.

Image 2

As you can see in the above image, there are lots of packages present as DLL file so you can add references of the required packages.

Here, I am going to use GZIP Compression class present in Java.util.zip package of Java. I know all of you have a question now, why I am using GZIP compression of Java while it presents in .NET already. So the reason behind that is GZIP compression provided by Java is better than .NET.

Let's see how to use it. So here we need to add IKVM.OpenJDK.Util.dll and IKVM.OpenJDK.Code.dll because GZIPOutputStream class is present in IKVM.OpenJDK.Util package and FileInputStream class which is required for file manipulation is present in Java.io that resides in IKVM.OpenJDK.Code package.

C#
using java.io;
using java.util.zip;
namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string srcfile="c:\\source.txt";
            string dstfile="c:\\destination.txt";

            FileInputStream fin = new FileInputStream(srcfile);
            GZIPOutputStream fout = new GZIPOutputStream(new FileOutputStream(dstfile));
            byte[] buffer = new byte[1024];
            int bytesRead;

            while ((bytesRead = fin.read(buffer)) != -1) //srcfile.getBytes()
            {

                System.Console.WriteLine(bytesRead);
                fout.write(buffer, 0, bytesRead);
            }

            fin.close();
            fout.close();

            //CompressStringToFile(dstfile, srcfile);
        }      
    }
}  

So as you can see in the above code by using IKVM.NET, we can use any Java package very easily without any overhead. You can use the same code that you have used in Java.

Points of Interest

You can use many powerful facilities that are provided by Java packages, without any overhead. In this tip, I am using a very simple utility of Java but if you want, you can use it accordingly and find it more useful later on.

References

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
India India
I like to code and I really enjoy to share my knowledge with all, Its my passion.

http://abhishekgoswami.com/

Comments and Discussions

 
Bugbroken link Pin
Bib3477020-May-13 5:30
Bib3477020-May-13 5:30 
AnswerRe: broken link Pin
Abhishek Kumar Goswami20-May-13 6:43
professionalAbhishek Kumar Goswami20-May-13 6:43 
GeneralRe: broken link Pin
Abhishek Kumar Goswami21-May-13 21:32
professionalAbhishek Kumar Goswami21-May-13 21:32 
GeneralMy vote of 3 Pin
ibrahim_ragab18-May-13 1:13
professionalibrahim_ragab18-May-13 1:13 
GeneralMy vote of 3 Pin
Mohit_Rudra17-May-13 18:06
Mohit_Rudra17-May-13 18:06 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.