📜 ⬆️ ⬇️

After becoming the master of Java, Oracle unwittingly broke Eclipse

This month ( post dated July 28 - approx. Lane ), Oracle has released a new version of Java, 1.6.0_21 (it’s also 6u21). Unfortunately, Eclipse users quickly discovered that this version is incompatible with Eclipse and the Eclipse Rich Client Platform (RCP) software.

Bug 319514 from eclipsovoy bug tracking system contained a description of this problem with a shell print in which it was clear that Oracle changed the company name in the parameters of the java.exe file from “Sun Microsystems, Inc.” to “Oracle”. This change is not included in the official release notes . Ironically, since 2007, Eclipse was tied to this parameter, to solve another problem related to the small value of the “MaxPermSize” parameter set by Sun, which is why the Eclipse simply did not start. But when the environment changed, then this fix also stopped working, and many got problems with “PermGen”.

On this, Oracle on Monday responded by updating version 6u21, in which it returned the previous value. In addition, it was clearly stated that in JDK 7, “Oracle” would again appear in the company's field. Here is what one of the developers writes:
One of the stages of re-branding all Sun's products into Oracle's products was to change the value of the Company Name parameter for the java.exe file, which was done in Java SE 6u21.

After the new version was posted on java.sun.com, we received many statements that the new changes affected the work of Eclipse users under Windows. All data and workaround problems were immediately noted on the Eclipse site, but the avalanche-like distribution of the new version affected more and more new users. Understanding this, as well as considering the wishes of Eclipse and many thousands of Oracle users, restored the values ​​of the Company Name parameter on “Sun Microsystems”.
')
The changes affected only the Windows version, while the Solaris and Linux versions worked fine. In order for this to work in Windows, a new build was released, in which the version was changed from 6u21-b06 to 6u21-b07. Under Solaris and Linux, build 6u21-b06 was still delivered.

The engineering department notes that: in Java, the values ​​of java.vendor and java.vm.vendor will not change in any of the jdk6 releases and will still look like “Sun Microsystems, Inc.”. It was found that the name of the supplier critically affects the performance of a number of programs. And in Windows, the problem was the “COMPANY” field that was explicitly specified for exe / dll, which was the source of the problem. In general, for us it was a big surprise that someone at all is tied to such parameters. Given this, for the jdk6 releases, the COMPANY field has been restored. But in jdk7 releases, there will be a final change to all parameters pointing to the company name, including java.vendor and java.vm.vendor.

This morning, I made sure that there is a version working with Eclipse on the official download page . This is what will be displayed on the command line when calling java -version:

C:\> java -version
java version “1.6.0_21″
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b17, mixed mode)


If you downloaded Java under the 32 or 64 version of Windows, make sure that this version is called 1.6.0_21-b07, and not b06.

Source: https://habr.com/ru/post/101847/


All Articles