Not necessarily, the purpose of a JNI library is to do platform-specific
stuff that isn't available in Java - although people abuse that. So even if
you were able to successfully disassemble the DLL what you would find in
there would not apply directly to Linux. Your best bet is to understand the
Java application and identify what calls it is making via JNI and try to
provide an equivalent libray under Linux. What is the purpose of this DLL
(you said that the DLL has platform-specific data, do you mean that it has
very little code?).


Marc-Arthur Pierre-Louis
Senior Software Engineer
Architect, IBM Solution Technologies (Linux Integration Center)
Internet: [EMAIL PROTECTED]
(512)838-9320



"Rengasamy, Samy" <[EMAIL PROTECTED]>@VM.MARIST.EDU> on 01/11/2002
11:57:43 AM

Please respond to Linux on 390 Port <[EMAIL PROTECTED]>

Sent by:    Linux on 390 Port <[EMAIL PROTECTED]>


To:    [EMAIL PROTECTED]
cc:
Subject:    Re: Porting a Solaris .so to Linux .so



It looks like the application was developed by some contractor and I am
afraid, we may not be able to trace the author. In that case if I get the
DLL disassembled to an asm source, will I be able to manipulate it for
porting to Linux.

Thanks,

Samy Rengasamy.

-----Original Message-----
From: Marc-Arthur Pierre-Louis [mailto:[EMAIL PROTECTED]]
Sent: Thursday, January 10, 2002 10:26 AM
To: [EMAIL PROTECTED]
Subject: Re: Porting a Solaris .so to Linux .so


Well,
      It would seem to me that the vendor of this  application is doing JNI
and is providing the libraries on a platform-specific basis.  These are the
risk and perils that one undergoes when the choice is made to run
applications relying on JNI code - although sometimes one is left with no
other choice. Perhaps the vendor will get to write a Linux/390 shared
object. You won't loose anything by asking. "Ask and ye shall receive..."
-:)


Marc-Arthur Pierre-Louis
Senior Software Engineer
Architect, IBM Solution Technologies (Linux Integration Center)
Internet: [EMAIL PROTECTED]
(512)838-9320



David Boyes <[EMAIL PROTECTED]>@VM.MARIST.EDU> on 01/10/2002 10:04:56
AM

Please respond to Linux on 390 Port <[EMAIL PROTECTED]>

Sent by:    Linux on 390 Port <[EMAIL PROTECTED]>


To:    [EMAIL PROTECTED]
cc:
Subject:    Re: Porting a Solaris .so to Linux .so



> Can anybody give a solution for this scenario?
> We have a java application running on NT.
> The vendor does have some platform specific data in a DLL.
> The application could be run on a Solaris platform also.
> And I do have the .so file for Solaris platform.
> I did try to run the application on Linux/390 with the
> Solaris .so file,
> but I am getting 'invalid ELF Header message'.
> I do not have access to the source code.
> How can I port this application to Linux/390?

So much for "write once, run anywhere" Java applications, hmm?

The answer is: you can't. If there is platform specific info in a compiled
file and you don't have source code for that module, you can't port the
application unless you can write replacement routines. If you can figure
out
what the platform-specific code does and write replacements, you should be
able to link those classes into your application in place of the compiled
stuff.

-- db

Reply via email to