From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28176 invoked by alias); 13 Feb 2012 04:30:53 -0000 Received: (qmail 28163 invoked by uid 22791); 13 Feb 2012 04:30:51 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_GC X-Spam-Check-By: sourceware.org Received: from mail-iy0-f175.google.com (HELO mail-iy0-f175.google.com) (209.85.210.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 13 Feb 2012 04:30:35 +0000 Received: by iaby12 with SMTP id y12so3846799iab.20 for ; Sun, 12 Feb 2012 20:30:34 -0800 (PST) Received: by 10.42.19.135 with SMTP id c7mr19017221icb.31.1329107434584; Sun, 12 Feb 2012 20:30:34 -0800 (PST) Received: from woodchuck.anu.edu.au (woodchuck.anu.edu.au. [150.203.163.117]) by mx.google.com with ESMTPS id ko6sm12017044igc.2.2012.02.12.20.30.32 (version=SSLv3 cipher=OTHER); Sun, 12 Feb 2012 20:30:34 -0800 (PST) Message-ID: <4F389217.7040506@gmail.com> Date: Mon, 13 Feb 2012 04:30:00 -0000 From: Yi Lin User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0.1) Gecko/20120208 Thunderbird/10.0.1 MIME-Version: 1.0 To: Brian Jones CC: java@gcc.gnu.org Subject: Re: Interface gcj-compiled library with Java programs in a runtime (other than gij)? References: <4F387D25.40406@gmail.com> <1586090240029193189@unknownmsgid> In-Reply-To: <1586090240029193189@unknownmsgid> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org X-SW-Source: 2012-02/txt/msg00010.txt.bz2 Thank you. I think I may have missed a keyword here: CNI. I avoid using JNI for performance degradation. The detailed scenario is like: There are two parts of code. -SomeJavaCode.java: containing a method call to NativeJavaLib.a(). This part of code remains in bytecode -NativeJavaLib.java: declaring 'native void a()' -NativeJavaLib.cpp: implementing a() via CNI This part is compiled to libJavaLib.so Now SomeJavaCode can be executed correctly with 'gij' interpreter; I think there is no JNI involved. But it cannot run on HotSpot or other VM. If I have to use JNI to do this, then the approach is much less attractive. Thanks, Yi On 13/02/12 15:00 , Brian Jones wrote: > I suggest you try jni to get to whatever native code you are interested in. > > Brian > > On Feb 12, 2012, at 10:01 PM, Yi Lin wrote: > >> Hi, >> >> I am wondering if we can use methods from a gcj-compiled library in uncompiled Java program(bytecode) executed on a VM. >> >> According to gcj FAQ 1.7, there is no problem to do this with 'gij' interpreter/runtime. You can compile some Java code into library (native code), and run bytecode with 'gij' to invoke library methods. But this seems only capable for 'gij', and other runtimes like HotSpot cannot load and link the library properly. >> >> I want to know if there is a general solution to allow you interface uncompiled Java program with gcj-compiled library. Any information or reference about this will be appreciated. >> >> Many Thanks, >> Yi