@@ -75,8 +75,11 @@ public class AppBundlerTask extends Task {
7575 private String workingDirectory = null ;
7676
7777 private String applicationCategory = null ;
78-
7978 private boolean highResolutionCapable = true ;
79+ // Oracle Java 7 requires 10.7.3 or later, so require it here.
80+ private String minimumSystem = "10.7.3" ;
81+ // By default, don't embed Java FX.
82+ private boolean javafx = false ;
8083
8184 // JVM info properties
8285 private String mainClassName = null ;
@@ -167,9 +170,19 @@ public void setApplicationCategory(String applicationCategory) {
167170 }
168171
169172
173+ public void setMinimumSystem (String minimumSystem ) {
174+ this .minimumSystem = minimumSystem ;
175+ }
176+
177+
170178 public void setHighResolutionCapable (boolean highResolutionCapable ) {
171179 this .highResolutionCapable = highResolutionCapable ;
172180 }
181+
182+
183+ public void setJavaFX (boolean javafx ) {
184+ this .javafx = javafx ;
185+ }
173186
174187
175188 public void setMainClassName (String mainClassName ) {
@@ -199,6 +212,29 @@ public void addConfiguredRuntime(FileSet runtime) throws BuildException {
199212 "jre/lib/plugin.jar" ,
200213 "jre/lib/security/javaws.policy"
201214 });
215+
216+ if (!javafx ) {
217+ // http://www.oracle.com/technetwork/java/javase/jdk-7-readme-429198.html
218+ runtime .appendExcludes (new String [] {
219+ "jre/THIRDPARTYLICENSEREADME-JAVAFX.txt" ,
220+
221+ "jre/lib/javafx.properties" ,
222+ "jre/lib/jfxrt.jar" ,
223+ "jre/lib/security/javafx.policy" ,
224+
225+ "jre/lib/fxplugins.dylib" ,
226+ "jre/lib/libdecora-sse.dylib" ,
227+ "jre/lib/libglass.dylib" ,
228+ "jre/lib/libglib-2.0.0.dylib" ,
229+ "jre/lib/libgstplugins-lite.dylib" ,
230+ "jre/lib/libgstreamer-lite.dylib" ,
231+ "jre/lib/libjavafx-font.dylib" ,
232+ "jre/lib/libjavafx-iio.dylib" ,
233+ "jre/lib/libjfxmedia.dylib" ,
234+ "jre/lib/libjfxwebkit.dylib" ,
235+ "jre/lib/libprism-es2.dylib"
236+ });
237+ }
202238 }
203239
204240
@@ -552,6 +588,10 @@ private void writeInfoPlist(File file) throws IOException {
552588 if (applicationCategory != null ) {
553589 plist .writeProperty ("LSApplicationCategoryType" , applicationCategory );
554590 }
591+
592+ if (minimumSystem != null ) {
593+ plist .writeProperty ("LSMinimumSystemVersion" , minimumSystem );
594+ }
555595
556596 if (highResolutionCapable ) {
557597 plist .writeKey ("NSHighResolutionCapable" );
0 commit comments