YAACMain.jar is how I had to split the YAAC code in half so I could get the dynamically located JSSC library to be recognized. The problem in build#162 was a security rule in the Java runtime that I was violating. Any code that references the JSSC library had to be loaded into the JVM at either the same time or after the JSSC library was loaded, or it couldn't see the JSSC code. That prevents attackers from slipping in an infected library that overrides Java runtime library code. In build#162, I was attaching the JSSC library _after_ the core YAAC code was started running, so therefore YAAC couldn't see any of the code in the JSSC library. So I split YAAC into two pieces:
1. YAAC.jar (same name, so users wouldn't get confused or broken) which now only contains the startup code that deals with some Mac OS X weirdness and locates and loads the JSSC library before starting the rest of YAAC. 2. YAACMain.jar, which contains the rest of the code of core YAAC and is now loaded _after_ the JSSC library, so the security rule isn't violated when core YAAC tries to call JSSC. Note that all of the other 3rd party libraries (OpenMap, JavaHelp, Apache compress, etc.) are loaded at the same time as YAAC.jar, so they too are loaded before the code in YAACMain.jar is loaded. Back when YAAC was one jar file, those 3rd party libraries were loaded at the same time too, so they were accessible from code in YAAC.jar. I had to play similar (but not the same) games with the RXTX library in order to locate their native libraries dynamically instead of requiring the user to manually specify a command-line option to identify the correct platform-specific native machine code library. For those who want to see how I do it, look in the source code distribution for the source file YAACBootstrap.java, which is the startup code that runs before the main YAAC.java code. Andrew, KA2DDO author of YAAC ________________________________________ From: [email protected] <[email protected]> on behalf of Ronny Julian Sent: Wednesday, December 30, 2020 12:50 AM Subject: Re: [yaac-users] URGENT: new build#163 of YAAC, created 2020-Dec-29 Working Great again! Pardon the dumb question if I missed it. What is YAAC MAIN? |