Prof. Dr.-Ing. Albrecht Weinert

java framework

go to Frame4J @ AI2T (guest/guest) Install Frame4J
Frame4J's installation is quite simple.

The minimum requirement is having the file frame4j.jar added as so called installed extension to your Java development kit (JDK) or runtime environment (JRE). That's done by downloading it and putting it to something like
  C:\programme\jdk\jre\lib\ext\ (on Windows)
respectively to something like
  /usr/lib/jvm/jdk/jre/lib/ext/ (on Linux *).

This simple step will get you almost all of the tools and libraries working, also for Eclipse and else if using that augmented JDK. Missing in this minimalistic variant are the javaDoc and the extras for (serial) interfaces, pdf, mail and else.
Hint: Nevertheless, we have to note Java 8 deprecating the 20 year old widely used and still propagated deployment via installed extensions. Java 9 dis kill it by 2017, bat wasn't used widely. Since November 2018 we have an adaption to use all Frame4J tools with Java 11 (w/o jigsaw except those requiring proven installed .jars like pfd or RS232/485/usb handling).

All in one step
The easy way to have it all is
  1. download the newest file erg.zip — (it contains frame4j.jar)
  2. Go to your JDK directory; that is something like
      C:\programme\jdk\ (on Windows)
      /usr/lib/jvm/jdk/ (on Linux *).
  3. Unpack erg.zip there by
      sudo ./bin/jar xfv whereYouDownloadedIt/erg.zip

That's it for Windows — and mostly for Linux also.

The Linux' extra
The JDK installation may, of course, be elsewhere. "java" in one Linux $PATH directory almost never is the programme — the .exe equivalent — but one (first) link in an often long chain to the real thing, the JDK installation we deal with. Nowadays it's often something like
    /usr/lib/jvm/java-6-openjdk/jre/bin/ or
    /usr/share/doc/openjdk-6-jre-headless/ .
Since Oracle's sundown Linux will usually have the open JDK and JRE. If, for good reason, you also/only have the Oracle Java, you may have four or more places to handle Java extensions and the like consistently.
Tipp: Additionally said link nightmare most often handles javac and java only, forgetting all else JDK tools.

To have the serial interfaces working on Linux also you'll have to move some files around:
You may of course delete ../bib/bsDoesItNative.dll — the replacement being libLinuxSerialParallel.so and javax.comm.properties (from SUN's commAPI or from Frame4J's repository). They go to something like /usr/lib/ respectively /usr/lib/jvm/jdk/jre/lib/. In the meantime RXTX is beyond its premature state and has supporters for Win64 also. Frame4J will move to it.

See also Ubuntu in a VirtualBox (German).

The minimal test

If these conditions are met
  1. your JDK is installed correctly,
  2. the path environment variable points to jdk/bin (Linux and Windows) and
  3. you installed Frame4J completely (from erg.zip) as described
the following will work from any directory within a shell:
  •   java AskAlert
  •   java ShowProps
  •   java ShowPorts
The first will open a window saying something on Frame4J's version etc.
The second will display all system properties visible to your JDK and
the third will list the computer's (serial and may be parallel) interfaces available for Java.

If all is well you may wish to get acquainted to the other tools. Every Frame4J based tool will display a help text by:
  java ToolName -?
  java ToolName -help

The help texts are available in English or German depending on the system's language or by options -de respectively -en.         Have fun.

Future problems

As might have come clear from the above, since 15 years Frame4J and its predecessor will be deployed as installed extensions. Oracle announced to drop installed extensions with Java9. Since Java8_0_40 they're deprecated. As one side effect an automated or manual JDK update deletes installed extensions on the workstation or server. This breaks running applications (when not immediately repaired) and may be considered as a bug.

As of August 2015 no real working recipe for migrating from installed extensions to the jigsaw concepts has been presented by Oracle. A migration path must be robust and testable with Java9 (EA).
"Make a module and bundle the libraries with the [one] application" is the the only advice found. It won't do. Frame4J is a framework + some 15 applications which are all available as one installation. Those tools are widely used on own and customers servers for automated processes, for example in SVN hooks, since years.
Breaking this "Java standard deployment procedure" (since Java1.2, 1998) will hit Frame4J and may hit many others.
Let's hope for a viable solution that won't break customer installations and is ready before Java9 or critical Java8 updates that may come.
Copyright     2009 2019  Albrecht Weinert
Revision: 3.02.2019 (V.60)       A. Weinert,   E-Mail (webmaster)