Click here to Skip to main content
Click here to Skip to main content

Sample JNI Application

By , 19 May 2003
 

Introduction

I always wanted to play around with JNI. This is my first attempt so I created a utility DLL called TestImpl.dll that exports several useful functions which are difficult or impossible to implement in JAVA.

Test.java is the sample application which calls each of the functions below.

TestImp.cpp contains the code to produce TestImp.dll and exports the functions below. TestImpl.dll is loaded by Java code using the following line: static {System.loadLibrary("TestImp");}.

public native void print(String msg); 

This is trivial and just prints the supplied string using a printf() statement.

public native byte[] readFile(String path);

This function reads a file and returns a byte array.

public native int searchFile(String path, byte[] b, int bLength);

This function performs a very fast binary search of a file for the supplied byte array.

public native String[] findFiles(String path, String mask); 

This function will return a String[] of file names that match the supplied mask. i.e. *.*, *.java, *.class ...

public native String[] checkProcess(String processName, boolean killIt, 
    boolean printOutput); 

This function will check for a running process (use the same process name you see in Task Manager), list all running processes (use " " for the process name), or kill a process.

public native int startProcess(String commandLine, String workingDir); 

This function will call createProcess().

public native boolean waitForFileMask(String directory, String fileMask); 

This function will wait(block) until a file that matches the supplied mask (*.java, *.class, *.txt ...) appears in the supplied directory.

public native boolean waitForAnyFile(String directory); 

This function will wait(block) until any file is added, renamed or deleted from the supplied directory.

I have included a project (VC++ 6.0) with all required files to build the DLL and a sample Java file that calls each of the above functions. You may need to edit the javac_.bat and Test_run.bat files to point to your Java installation (I run multiple versions).

Enjoy!

History

  • 20th May, 2003: Initial post

License

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

About the Author

Rod VanAmburgh
Web Developer
United States United States
Member
I enjoy working with C#, Java, Perl and C++

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
Questionview contents of ITLSSPProc.dllmemberMember 977863922 Jan '13 - 19:55 
QuestionJava callbackmemberMember 397024011 Jul '11 - 20:39 
AnswerRe: Java callbackmemberRod VanAmburgh12 Jul '11 - 8:57 
GeneralGood, but less of unicode supportmemberst_shadow24 Feb '09 - 6:02 
Generalhiimembert-829 Jul '08 - 19:26 
Questionwhat if i want to have my own file names in native code?memberReza Bakhshi28 Jun '08 - 19:21 
GeneralGood samplemembernickong20 Apr '08 - 22:37 
QuestionHow to call a DLL developed in C++ without re-Implimentation?memberyasirqau9 Apr '08 - 19:57 
AnswerRe: How to call a DLL developed in C++ without re-Implimentation?memberReza Bakhshi28 Jun '08 - 19:22 
GeneralRe: How to call a DLL developed in C++ without re-Implimentation?memberyasirqau29 Jun '08 - 18:45 
Generalnetwork traffic sniffer in JavamemberAbhishek Tiwari8 Apr '05 - 22:40 
GeneralRe: network traffic sniffer in JavamemberRod VanAmburgh9 Apr '05 - 14:50 
GeneralRe: network traffic sniffer in Javamemberslasher12323 Feb '06 - 4:32 
GeneralThanks a lot..memberjay2417 Oct '04 - 19:17 
GeneralRe: Thanks a lot..membersaiusha23 Nov '04 - 2:59 
GeneralHimemberwei leong11 Oct '04 - 22:46 

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

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130516.1 | Last Updated 20 May 2003
Article Copyright 2003 by Rod VanAmburgh
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid