README

        Jav-App.jpg

about JavApp24

JavApp is a mini Java IDE that is packaged as a JarApp: works like an app comes in a jar. The original version of JavAPP dates from about 2012. That version was the IDE for constructing the original COLOG theorem provers based upon a Skolem Abstract Machine (SAM), and the JavApp24 version is the current IDE version for the development of the AUTOLOG family of Java theorem provers.

A JarApp (UJA) is an executable Java jar that, once started, behaves as if it were an application on all OS platforms that support Java SDK. The high-level description of its behavior on all platforms is essentially the same. So the JarApp's code is once-written and universally run -- in theory. The JavApp concept is an experiment to test the concept of ubiquitous software using an alternate simple Java framework.

One can use JavApp24 by downloading JavApp22.jar and save the jar file into your home directory. The jar file is executable and runs JavApp24 on the desktop. The JavApp shows on the desktop as the icon pictured above, initially positioned near the upper-left corner of the screen. The JavApp icon can be dragged to a new location, and the last position is remembered next time the jar is started. Text files can be dropped on the icon to open them with the editor. If the user double-clicks on the JavApp icon, a new JavaEditor window appears. All editor windows are separate processes; quitting one of these processes has no effect on any others. If the mouse hovers on the "JavApp" icon label a simple tooltip shows. One can make JavApp a startup desktop application ...

See the ??? code info menu item under the Code menu of any editor window to read about classpath, compile, and run conventions used by the editor IDE.

The JavApp component automatically stores its screen location in file ~/JavApp.settings and the JavaEditor component stores initial data in file ~/JavAppEditor.settings and updates settings using the Options menu on its menubar ("Save Settings").

Turning any executable jar into a UJA is straightforward: The iconic JavApp is an undecorated javax.swing.JFrame showing the desired icon and the JavApp name (on JLabel). Mouse handlers take care of the dragging and opening a new process associated with the App. A DropFileHandler takes care of file drops for opening (multiple) files via drop. It is possible to make such an App ubiquitously-network-aware; however, this posted JavApp version is only locally aware (only sees download-user's system).


JavApp build

Download JavApp24.zip, and unzip to a JavaApp24 folder. The folder contains the following source and utility files:
  JavApp24/
     build
     images
     Info.html
     InfoPY.html 
     JavaEditor.java
     JavApp24.jar
     JavApp.java
     JavApp.MF
     makezip
     README.html
Inside the JavApp directory, the build script compiles all source.java files and also makes JavApp24.jar. Read the build file terminal script commands in order to understand what is going on. Then perform the build command inside the JavApp folder ...
   
   > source build 
After the build, copy the JavApp24.jar file to your home directory. To start JavaApp.jar, double-click on the ~/JavaApp.jar file and then JavaApp starts (showing the ikon) on the user's desktop. To start a new JavaEditor one can double-click the JavaApp desktop ikon. To open one (or several) Java program code file(s) in new JavaEditor process(es), drag-and-drop the selected code file(s) onto the JavaApp desktop ikon.

JavApp is intended as a simple integrated development environment to edit/compile/run a Java software program. For exmple we use JavApp as the IDE to maintain and modify JavApp itself.


JavApp24 © John R. Fisher 1998-2024 Users may alter code to suit there own personal preferences. The source file JavApp24/makezip creates a new JavApp24.zip file including new or modified Java source code starter files. Another build after a makezip repopulates the class and jar files.


ubiquity testing needed ...

The current version seems stable for OSX. I have not tested for Linux or Windows since about 2014, at which time a former version of JavApp seemed to be fairly OSX/Linux/Windows-stable (with some annoying occasional glitches).

The primary Java code difficulty in the past involved ubiquitous specification of mime-types for drag-and-drop operations (and the drop handler for same).

The concept of practical software specifications for ubiquity is interesting and makes for interesting student projects. Direct questions about JavApp24 to ...