This chapter provides an overview of new and changed deployment features in JDK 8.
The following sections describe the improvements and the release in which they were introduced.
For information on JDK 7, see Chapter 34, "Java Rich Internet Applications Enhancements in JDK 7."
The 8u40 release includes the following enhancements:
The UserJvmOptionsService
API is provided for self-contained applications. This API can be used to add a settings feature to your application that enables users to set the JVM options to use when the application is run. See Chapter 15, "Customizing JVM Options in Self-Contained Applications" for information.
File associations can be registered for self-contained applications. See Section 7.3.7, "Associating Files with a Self-Contained Application" and the <fx:association> element for information.
Arguments can be passed to a self-contained application when the application is started from the command line. See Section 7.3.6, "Passing Arguments to a Self-Contained Application" for information.
Self-contained applications can be created with multiple entry points when built using Ant. See Section 7.3.8, "Supporting Multiple Entry Points" for information.
The <fx:bundleArgument>
element for <fx:deploy>
Ant task supports the following new arguments for OS X bundlers: mac.CFBundleVersion
, and mac.dmg.simple
. See <fx:bundleArgument> for information.
Starting with JDK 8u31 release, the SSLv3 protocol is removed from the Java Control Panel Advanced options. See the 8u31 Update Release Notes for more information.
The 8u20 release includes the following enhancements related to deployment:
The JavaFX Packager tool is renamed to Java Packager and is run with the javapackager
command. Support for self-contained applications is expanded to enable arguments to be passed to the bundlers that are used to generate the native installable packages. See Chapter 7, "Self-Contained Application Packaging."
The Medium security level has been removed. Only High and Very High are supported. See Section 20.4.1, "Security Level."
For enterprise customers who use the Deployment Rule Set, the attribute force
is available for the action
element. When this attribute is set to true
, the JRE version requested by any RIA that matches the rule is overridden and the RIA is run with the version of the JRE that is specified in the rule. See Chapter 28, "Deployment Rule Set."
The 8u11 release includes the following enhancements related to deployment:
An option to suppress offers from sponsors when the JRE is installed or updated is available in the Advanced tab of the Java Control Panel. See Section 20.5.12, "Miscellaneous" for information.
The Entry-Point attribute can be included in the JAR file manifest to identify one or more classes as a valid entry point for your RIA. See Section 26.6, "Entry-Point Attribute" for information.
The 8u5 release includes the following enhancements related to deployment:
The frequency in which the security prompts are shown for an application has been reduced.
The JDK 8 release includes the following enhancements related to deployment:
For sandbox Rich Internet Applications (RIAs), URLPermission
is now used to allow connections back to the server from which they were started. URLPermissions
is granted based on protocol, host, and port of the code source. This change has the following implications:
For sandbox RIAs, SocketPermissions
for the origin host is no longer granted. Calls from JavaScript code to the RIA are not granted SocketPermissions
.
Sandbox RIAs that are loaded from a server using the HTTP protocol are not allowed to connect back to the server using the HTTPS protocol.
Sandbox RIAs loaded from a server on a specific port using either the HTTP or HTTPS protocol are not allowed to connect back to a different port on the server. For example, if the RIA is started from //www.example.com:80
, then the RIA is not allowed to connect back to //www.example.com:8888
.
Sandbox RIAs loaded from a server using either the HTTP or HTTPS protocol and a domain name are not allowed to connect back to the server using an IP address. For example, if the RIA is started from //www.example.com:8080
, then the RIA is not allowed to connect back to //192.0.2.1:8080
.
Privileged RIAs loaded from a server using the HTTP protocol do not accept calls from JavaScript code using the HTTPS protocol. To make calls to your RIA from JavaScript code using HTTPS, you must load your RIA using HTTPS.
The Permissions
attribute is now required in the JAR file manifest for the main JAR file of all RIAs at all security levels. See Chapter 26, "JAR File Manifest Attributes for Security" for information on the Permissions
attribute.
The Java class file format has been updated because of JSR 292, Java Virtual Machine Support for Non-Java Languages. Consequently, the Pack200 engine has been updated accordingly to ensure that Java SE 8 class files are compressed effectively. In particular, the Pack200 engine now recognizes constant pool entries and new bytecodes introduced by JSR 292.
As a result, compressed files created with this version of pack200 will not be compatible with older versions of unpack200.
In general, if a compressed file contains Java SE 8 or Java SE 7 class files, then it will not be compatible with older unpackers. (For example, if a compressed file contains Java SE 7 class files, then it will not be compatible with unpackers from Java SE 6 or earlier.)
See Section 30.2, "Deploying JAR Files Compressed with Pack200" and RFE 6981776.
The old Java Plug-in (the version available prior to Java SE 6 Update 10) has been removed from this release. See RFE 7076143.