Oct
20
2003
20
2003
First Experiences with JNI
Never done any JNI before, but recently had a need, and it turns out that it’s a whole lot more straightforward than I was anticipating. In my case, I needed to make some mods to an existing Win32 DLL, so YMMV.
In a nutshell, the process goes like this:
- Define the methods you need as public native in your Java class. These guys are just stubs to the C calls you’ll be making down the track, do don’t put in any method body (just like an interface!)
- Define a static initializer for your class which contains a call to your relevant library:
System.loadLibrary("myWinDll"); // but without the .DLL bit
- Compile up your class so you get yourself a class file.
- Run
javahover your compiled class. Which is going to give you a header file - Implement the header file methods in your C source.
- Compile it up!
- Make sure the DLL your access is in your path… then start up your Java app!
I was doing all this in VC 6.0, and found that when I used a Debug build I generated GPFs., the release builds worked fine.
If you’re looking for a very cool JNI how-to (which is Unix-centric, but the same principles apply), check out ringlord.com.
Leave a comment
Glen Smith
Archives
- January 2012
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- March 2004
- February 2004
- January 2004
- December 2003
- November 2003
- October 2003
- September 2003

An article by Glen




