Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Commit 7f63a2d

Browse files
committed
Merge branch 'develop' for release of version 2.0.0
# Conflicts solved: # README.md
2 parents 8fa3222 + 0556662 commit 7f63a2d

File tree

4 files changed

+251
-88
lines changed

4 files changed

+251
-88
lines changed

CHANGELOG.md

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
11
ChangeLog
22
---------
33

4+
### v2.0.0 (2016-11-20)
5+
* Localization of messages (English, German, French) (fixes #27 / PR #30, Thanks to @ebourg for his contribution)
6+
* Improve the version of Java reported in the error messages (fixes #28)
7+
* Send to java.com when the version of Java installed is too old (fixes #29)
8+
* Bugfix for parsing 3-digit java release/build numbers (e.g. for 1.8.0_101) (fixes #36)
9+
* Better search algorithm for specific Java version (fixes #35)
10+
* Use highest available Java version for execution if `JVMversion` is NOT specified (fixes #37)
11+
* matches the new behaviour for when `JVMversion` IS specified (#35)
12+
* Switch to `/bin/bash` with changes in #35
13+
* Add support for arrays of VMOptions in Apple style Info.plists (PR #25, Thanks to @spectre683 for his contribution)
14+
* Pass command line arguments through to the application (PR #31, Thanks to @dbankieris for his contribution)
15+
* Allow specifying `$JAVA_HOME` relative to `$AppPackageFolder` (fixes #7 / PR #26, Thanks to @toonetown for his contribution)
16+
* This allows you to set a relative `$JAVA_HOME` via the `<LSEnvironment>` Plist key
17+
* Which means you can bundle a custom version of Java inside your app!
18+
419
### v1.0.1 (2015-11-02)
5-
* Improved display error message with applescript (PR #22, Thanks to @ygesnel for his initial contribution)
20+
* Improved display error message with applescript (PR #22, Thanks to @ygesnel for his initial contribution)
621
* Reorder search for Java VM locations when specific JVM version is required (PR #22, Thanks to @yoe for his contribution)
722

8-
923
### v1.0.0 (2015-10-08)
1024
* Support for a splash file (PR #19)
1125
* For details see https://github.com/tofi86/universalJavaApplicationStub/pull/19

README.md

+13-9
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ universalJavaApplicationStub
33

44
[![Join the chat at https://gitter.im/tofi86/universalJavaApplicationStub](https://badges.gitter.im/tofi86/universalJavaApplicationStub.svg)](https://gitter.im/tofi86/universalJavaApplicationStub?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
55

6-
A shellscript JavaApplicationStub for Java Apps on Mac OS X that works with both Apple's and Oracle's plist format. It is released under the MIT License.
6+
A BASH based *JavaApplicationStub* for Java Apps on Mac OS X that works with both Apple's and Oracle's plist format. It is released under the MIT License.
77

88

99
Why
@@ -17,12 +17,12 @@ Whilst developing some Java apps for Mac OS X I was facing the problem of suppor
1717
* Apple Java 1.5/1.6: `/System/Library/Java/JavaVirtualMachines/`
1818
* Oracle JRE 1.7/1.8: `/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/`
1919
* Oracle JDK 1.7/1.8: `/System/Library/Java/JavaVirtualMachines/`
20-
20+
2121
2. Mac Apps built with tools designed for Apple's Java (like Apple's JarBundler or the [ANT task "Jarbundler"](http://informagen.com/JarBundler/)) won't work on Macs with Oracle Java 7 and no Apple Java installed.
2222
* This is because the Apple `JavaApplicationStub` only works for Apple's Java and their `Info.plist` style to store Java properties.
2323
* To support Oracle Java 7 you would need to built a separate App package with Oracles [ANT task "Appbundler"](https://java.net/projects/appbundler).
2424
* Thus you would need the user to know which Java distribution he has installed on his Mac. Not very user friendly...
25-
25+
2626
3. Oracle uses a different syntax to store Java properties in the applications `Info.plist` file. A Java app packaged as a Mac app with Oracles Appbundler also needs a different `JavaApplicationStub` and therefore won't work on systems with Apple's Java...
2727

2828
4. Starting with Mac OS X 10.10 *(Yosemite)*, app packages won't open up anymore if they contain the *deprecated* Plist `Java` dictionary. This isn't confirmed by Apple, but [issue #9](https://github.com/tofi86/universalJavaApplicationStub/issues/9) leads to this assumption:
@@ -70,14 +70,18 @@ The name of the *main class* is also retrieved from `Info.plist`. If no *main cl
7070
There is some *foo* happening to determine which Java versions are installed – here's the list in which order system properties are checked:
7171

7272
1. system variable `$JAVA_HOME`
73-
2. `/usr/libexec/java_home` symlinks
74-
3. symlink for old Apple Java: `/Library/Java/Home/bin/java`
75-
4. hardcoded fallback to Oracle's JRE Plugin: `/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java`
73+
* can also be set to a relative path using the [`<LSEnvironment>` Plist dictionary key](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/20001431-106825)
74+
* which allows for bundling a custom version of Java inside your app!
75+
2. highest available Java version found in one of these locations:
76+
* `/usr/libexec/java_home` symlinks
77+
* Oracle's JRE Plugin: `/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java`
78+
* Symlink for old Apple Java: `/Library/Java/Home/bin/java`
7679

7780
If none of these could be found or executed, an applescript error dialog is shown saying that Java need to be installed:
7881

7982
![Error Dialog No Java Found](/docs/java-error.png?raw=true)
8083

84+
Messages are localized and displayed either in English (Default), French or German. Language contributions are very welcome!
8185

8286
What you need to do
8387
-------------------
@@ -94,7 +98,7 @@ Download the latest JarBundler release [from its github repo](https://github.com
9498

9599
:exclamation: **Attention:**
96100
> Using an older version of JarBundler (e.g. [old JarBundler ≤ v2.3](http://informagen.com/JarBundler/) or [new JarBundler ≤ v3.2](https://github.com/UltraMixer/JarBundler)) might result in [issue #9](https://github.com/tofi86/universalJavaApplicationStub/issues/9) *(Mac OS X 10.10 asking to install deprecated Apple JRE 6 instead of using a newer Java version)*
97-
>
101+
>
98102
> If you don't want to care about compatibility issues between OS X and Java versions, make sure to use the [latest JarBundler version ≥ 3.3](https://github.com/UltraMixer/JarBundler/releases)
99103
100104
Then place the `universalJavaApplicationStub` from this repo in your build resources folder and link it in your ANT task (attribute `stubfile`). Don't forget to set the newly introduced `useJavaXKey` option:
@@ -106,7 +110,7 @@ Then place the `universalJavaApplicationStub` from this repo in your build resou
106110
stubfile="${resources.dir}/universalJavaApplicationStub"
107111
useJavaXKey="true"
108112
... >
109-
113+
110114
</jarbundler>
111115
```
112116

@@ -124,7 +128,7 @@ Just place the `universalJavaApplicationStub` from this repo in your build resou
124128
icon="${resources.dir}/icon.icns"
125129
executableName="${resources.dir}/universalJavaApplicationStub"
126130
... >
127-
131+
128132
</appbundler>
129133
```
130134

0 commit comments

Comments
 (0)