Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: Ten Blade Newsgroups: comp.lang.java.programmer Subject: Re: Need help with Unsatisfied Link Error Date: Fri, 15 Jul 2011 20:01:28 +0000 (UTC) Organization: Your Company Lines: 91 Message-ID: References: <23c027pp1c89q50m3aqgi84qp605451ivm@4ax.com> <4e204dc8$0$2490$db0fefd9@news.zen.co.uk> NNTP-Posting-Host: COANff5pXhvQeTGNzvTjwg.user.speranza.aioe.org X-Complaints-To: abuse@aioe.org User-Agent: Xnews/5.04.25 X-Antivirus-Status: Clean X-Notice: Filtered by postfilter v. 0.8.2 X-Antivirus: avast! (VPS 110715-1, 2011-07-15), Outbound message Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:6217 RedGrittyBrick wrote in news:4e204dc8$0$2490$db0fefd9@news.zen.co.uk: > On 15/07/2011 15:04, Rhino wrote: >> >> "Roedy Green" wrote in message >> news:23c027pp1c89q50m3aqgi84qp605451ivm@4ax.com... >>> On Fri, 15 Jul 2011 03:35:32 +0000 (UTC), Ten Blade >>> wrote, quoted or indirectly quoted someone >>> who said : >>> >>>> UnsatisfiedLinkError: >>> >>> These are surprisingly difficult to track down. See >>> http://mindprod.com/jgloss/runerrormessages.html#UNSATISFIEDLINKERROR >> >> >> Something really critical for me to know here is whether it is indeed >> possible for a Java program to link with a DLL in a cab file. > > As I understand it, Windows cabinet files (.cab) are intended for use > by an application installer, not by another application. The installer > would normally extract DLLs from a cabinet file and install them into > the correct place. > Sounds reasonable. I had a vague sense that user programs don't access files from cab files from the first but didn't know enough to be sure.... > For this reason I'd be surprised if JNI had some general way of > knowing which cab files might contain a needed DLL. > Sounds reasonable. > >> I'm not >> even positive I have the right file so I'd like to be sure that >> linking to the DLL is possible in the first place, particularly when >> it is within a cab file. Perhaps I need to copy it from the cab file >> into a directory? Or can Java 'see' DLLs in a cab file the same way >> it can read class files in a jar? > > "Java Uno is the implementation of Uno (Runtime, Core Components, > utilities) for Java. Java Uno interoperates with Binary Uno via the > JNI - Binary Uno bridge" > > Are you certain you have properly 0installed Binary UNO? > Excellent question but I'm not sure how to answer it. I know virtually nothing about UNO and how it works, just that it was a technique I saw recommended to meet my needs of creating documents that could be read by Word. I can't find anything in the way of documentation telling you exactly how the UNO SDK is to be installed but, on the chance that I chose an inappropriate option during the installation the first time, I uninstalled the SDK completely and then reinstalled it. There was really just one option during the install, namely where it was supposed to be installed relative to OpenOfficeOrg itself. I simply took the default value this time - as I think I did the first time too - and let it reinstall. I had no information on a better place to install it so that seems likely to be the right place. Once I'd reinstalled the SDK, I noticed that there was a unowinreg.dll in one of the folders in the SDK but this one was NOT in a cab file. Eureka, I thought! I noted the full path to unowinreg.dll but did nothing else about it for the moment. I tried preparing and running the program again but it failed on the same error; no surprise. I tried adding the path to the unowinreg.dll to the java.library.path but seem to have screwed it up because I couldn't get it to see the dll for love or money. Finally, I googled some more and saw the suggestion that as long as unowinreg.dll was in one of the folders specified in the java.library.path - it didn't matter which one - I should be good to go. I put it in an eclipse folder that was in the path, stopped and started Eclipse, but still got the error message. Then I deleted it from the eclipse folder and put a copy of unowinreg.dll in c:\windows\system32, rebooted the computer and NOW I can run the program successfully! Problem solved!! Thanks to you and Roedy for getting me going in the right direction!! Now I can finally start to learn about UNO! -- Ten-Blade