{"action":"created","issue":{"url":"https://api.github.com/repos/imagej/imagej-launcher/issues/33","labels_url":"https://api.github.com/repos/imagej/imagej-launcher/issues/33/labels{/name}","comments_url":"https://api.github.com/repos/imagej/imagej-launcher/issues/33/comments","events_url":"https://api.github.com/repos/imagej/imagej-launcher/issues/33/events","html_url":"https://github.com/imagej/imagej-launcher/issues/33","id":86272980,"number":33,"title":"Decouple Java requirement from launch process","user":{"login":"hinerm","id":1123809,"avatar_url":"https://avatars.githubusercontent.com/u/1123809?v=3","gravatar_id":"","url":"https://api.github.com/users/hinerm","html_url":"https://github.com/hinerm","followers_url":"https://api.github.com/users/hinerm/followers","following_url":"https://api.github.com/users/hinerm/following{/other_user}","gists_url":"https://api.github.com/users/hinerm/gists{/gist_id}","starred_url":"https://api.github.com/users/hinerm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hinerm/subscriptions","organizations_url":"https://api.github.com/users/hinerm/orgs","repos_url":"https://api.github.com/users/hinerm/repos","events_url":"https://api.github.com/users/hinerm/events{/privacy}","received_events_url":"https://api.github.com/users/hinerm/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/imagej/imagej-launcher/labels/deployment","name":"deployment","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2015-06-08T17:54:13Z","updated_at":"2015-11-19T11:42:02Z","closed_at":null,"body":"Our goal is to simplify the ImageJ launch process so we are not so intimately tied to a custom, complex launcher with its own JDK version concerns.\r\n\r\nPerfect world goals include:\r\n\r\n* We bundle latest Java with all the JRE-included bundles\r\n* ImageJ options have a way for users to [point to their JRE of choice](https://github.com/imagej/imagej/issues/105)\r\n* Users are free to still use older Java versions (i.e. 6) with an OS-agnostic no-JRE bundle\r\n* we can easily distribute ImageJ, [without requiring the Fiji update site](https://github.com/imagej/imagej/issues/118)\r\n\r\nJavaFX is currently our first choice for deployment. It appears to be capable of building standalone (no bundled JRE) and self-contained (bundled JRE) apps cross-platform. These is also a [maven plugin](https://github.com/javafx-maven-plugin/javafx-maven-plugin)\r\n\r\nJavaFX issues that need to be solved:\r\n\r\n- [x] Not able to set `<fx:platform basedir=\"\"/>` to get standalone deployment. **SOLVED** by using build.xml. See also javafx-maven-plugin/javafx-maven-plugin#127.\r\n- [x] `jfx:native` goal doesn't respect app name configuration. **SOLVED** - see javafx-maven-plugin/javafx-maven-plugin#128.\r\n- [x] Preloaders. **WONTUSE** preloaders live in the same JVM as the application. They will not meet our needs.\r\n- [ ] Command line arguments - we need to be able to support things like `--debugger=8000` which the native launcher translated to JVM argument(s). See [SO #30809330](http://stackoverflow.com/q/30809330).\r\n- [ ] Figure out how we want to handle updating. This is tied to the [refresh menus](https://github.com/imagej/ij1-patcher/issues/31) problem. It sounds like the `.jar` lock in Windows may be fixed in Java 7 allowing runtime swapping, in which case checking for updates at startup and replacing `.jars` before loading classes and spinning up a context may be an option worth investigating, especially if we remove the `ImageJ` update site - which would become an immutable `/lib`.\r\n- [ ] We need a splash screen. Options would be using `java -splash` or JavaFX.\r\n- [ ] To test: what happens if you try running a no-JRE JFX distribution on a platform without Java installed?\r\n\r\nPlatform-specific notes\r\n==================\r\n\r\nLinux\r\n-------\r\n* Debian bundler requires `fakeroot` to be installed and just fails if it isn't. This will only affect developer machines though.\r\n* Native launcher produced by debian bundler fails with no packaged JRE (message complains that JRE can't be found)\r\n\r\nWindows\r\n------------\r\n* Install WiX (wixtoolset.org) - **Version 3.X**\r\n* Install Inno Setup jrsoftware.org/isdl.php\r\n* Had to fix classpath (didn't have to on linux/osx)\r\n* `exe` installer installed to `C:\\Users\\username\\AppData\\Local\\ImageJ`\r\n* `msi` installer installed to `C:\\Program Files\\ImageJ`\r\n* icon works except it's lost on the app for .exe installer"},"comment":{"url":"https://api.github.com/repos/imagej/imagej-launcher/issues/comments/158031919","html_url":"https://github.com/imagej/imagej-launcher/issues/33#issuecomment-158031919","issue_url":"https://api.github.com/repos/imagej/imagej-launcher/issues/33","id":158031919,"user":{"login":"FibreFoX","id":1042579,"avatar_url":"https://avatars.githubusercontent.com/u/1042579?v=3","gravatar_id":"","url":"https://api.github.com/users/FibreFoX","html_url":"https://github.com/FibreFoX","followers_url":"https://api.github.com/users/FibreFoX/followers","following_url":"https://api.github.com/users/FibreFoX/following{/other_user}","gists_url":"https://api.github.com/users/FibreFoX/gists{/gist_id}","starred_url":"https://api.github.com/users/FibreFoX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FibreFoX/subscriptions","organizations_url":"https://api.github.com/users/FibreFoX/orgs","repos_url":"https://api.github.com/users/FibreFoX/repos","events_url":"https://api.github.com/users/FibreFoX/events{/privacy}","received_events_url":"https://api.github.com/users/FibreFoX/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T11:42:01Z","updated_at":"2015-11-19T11:42:01Z","body":"> Native launcher produced by debian bundler fails with no packaged JRE (message complains that JRE can't be found)\r\n\r\nThis might be since java 1.8.0 update 60, [see the issue on javafx-maven-plugin](https://github.com/javafx-maven-plugin/javafx-maven-plugin/issues/167), this got a workaround in latest snapshot-version (had this problem on windows too)\r\n\r\n>  exe installer installed to C:\\Users\\username\\AppData\\Local\\ImageJ \r\n>  msi installer installed to C:\\Program Files\\ImageJ \r\n\r\nThis can be changed by modifying the generated installer-file (wsx), which is placed under some temporary folder, will be shown/reported, when javafx-maven-plugin contains `<verbose>true</verbose>`, same goes for msi-installer. In current JDK there seems to exist specific one bundleArgument to make installation-target selectable, but haven't tried it yet; bundle argument for both: [exe-bundler](http://hg.openjdk.java.net/openjfx/8u60/rt/file/996511a322b7/modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinExeBundler.java#l469) and [msi-bundler](http://hg.openjdk.java.net/openjfx/8u60/rt/file/996511a322b7/modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinMsiBundler.java#l676):\r\n```\r\n<bundleArgument>\r\n<installdirChooser>true</installdirChooser>\r\n</bundleArgument>\r\n```"}}