README

        Jav-App.jpg

about JavApp

JavApp is a mini Java IDE that is packaged as a JarApp: works like an app comes in a jar.

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 is an experiment to test the concept of ubiquitous software using an alternate. simple Java framework.

One can use JavApp by downloading JavApp.jar and save the jar file into your home directory. The jar file is executable and runs JavApp on the desktop. The JavApp shows on the desktop as the icon pictured above, initially positioned in the upper-left corner of the screen. The App 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 editor 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.

Turning any executable jar into a UJA is straightforward: The iconic App is an undecorated javax.swing.JFrame showing the desired icon and the App 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 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 compilation

Download JavApp.zip, and unzip. Inside the JavApp directory, the build script compiles *.java and also makes JavApp.jar. Read the build file in order to understand what is going on.
   > cd JavApp
   > source build
JavApp is intended as a simple tool to edit/compile/run a working version. I use JavApp as the IDE to maintain and modify the JavApp.

LICENSE

JavApp borrows the SimPL(2.0) License.

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.

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 would make for an interesting thesis project.