java.lang.NoClassDefFoundError on sun/security/util/DerInputStream
843802Apr 7 2009 — edited May 13 2009For a couple of years I have been using Java Web Start from Sun's JRE 1.5.0_12 to download Java applications and I have used an IBM 1.4.2 JRE to run the applications. I am using the IBM's JRE because I am communicating serial objects with a WebSphere Application Server application.
Now I am trying to upgrade my Sun JRE to 1.6.0_13-b03 and still to use the IBM JRE's (1.4.2 and later 1.6) and when I am signing my jar-files with a VeriSign certificate I am getting a java.lang.NoClassDefFoundError on sun/security/util/DerInputStream when Java Web Start tries to start the downloaded application.
The application can start:
- If I am using Java Web Start from Sun's JRE 1.5.0_18,
- Or if I specify Sun's JRE to run it,
- Or if the jar-files are signed with a test certificate.
But the wanted configuration with Java Web Start from Sun's JRE 1.6.0_13, IBM's JRE 1.4.2 or 1.6, and using a real VeriSign certificate to sign the jar-files generates a java.lang.NoClassDefFoundError on sun/security/util/DerInputStream.
The sun.security.util.DerInputStream-class is part of Sun's rt.jar but it is not present in the sun.security.util-package in the IBM jar-files. IBM has a DerInputStream-class in the package com.ibm.security.util but Sun's Java Web Start seems to require the Sun version.
I think the above problem started with Sun's JRE 1.6.0_07 or 1.6.0_10 and I guess it is a result of solving the security issue in [http://sunsolve.sun.com/search/document.do?assetkey=1-66-238905-1|http://forums.sun.com/post!default.jspa?forumID=38].
Can anyone tell me how to circumvent this problem with Sun's JRE 1.6.0_13, an IBM JRE, and using a real VeriSign certificate?