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 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.> cd JavApp > source build
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.