简体   繁体   English

java.lang.NoClassDefFoundError:sun / misc / BASE64Encoder

[英]java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder

I would like to connect some domain with java code. 我想用Java代码连接某些域。 I can connect the domain in the browser as follow: http://username:password@domain.com 我可以按以下方式在浏览器中连接域: http:// username:password@domain.com

I tryed the following: 我尝试了以下方法:

    String enc = "username" + ":" + "password";
            String encoded = new sun.misc.BASE64Encoder().encode(loginPassword.getBytes());
URL url = new URL("domain.com");
            URLConnection conn = url.openConnection();
            conn.setRequestProperty ("Authorization", "Basic " + encoded);

I get the error: 401/Unutorized... java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder 我收到错误:401 / Unutorized ... java.lang.NoClassDefFoundError:sun / misc / BASE64Encoder

Is there any solution I can try?. 有什么办法可以尝试吗?

Oracle has announced the removal of those classes in Java 9. Oracle已宣布删除 Java 9中的这些类。

You should not be using classes that are in sun.* packages - those classes are not part of the public API of Java and can change in any new Java version. 您不应该使用sun.*软件包中的类-这些类不是Java的公共API的一部分,并且可以在任何新的Java版本中进行更改。

See Why Developers Should Not Write Programs That Call 'sun' Packages in Oracle's documentation. 请参阅Oracle文档中的开发人员为何不应该编写调用“ sun”程序包的程序

Instead of using class sun.misc.BASE64Encoder : 而不是使用类sun.misc.BASE64Encoder

If you are using Java 8, then use class java.util.Base64 for Base 64 encoding and decoding. 如果使用的是Java 8,则将类java.util.Base64用于Base 64编码和解码。

Otherwise, use a third-party library, for example class org.apache.commons.codec.binary.Base64 from Apache Commons Codec . 否则,请使用第三方库,例如Apache Commons Codec的org.apache.commons.codec.binary.Base64

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 提交远程命令时出错:sun/misc/BASE64Encoder: sun.misc.BASE64Encoder - Error submitting remote command: sun/misc/BASE64Encoder: sun.misc.BASE64Encoder Eclipse 上关于 sun/misc/BASE64Encoder 的错误 - Error about sun/misc/BASE64Encoder on Eclipse Andmore的Android Package Builder失败,并出现与sun / misc / BASE64Encoder相关的错误 - Andmore's Android Package Builder fails with error related to sun/misc/BASE64Encoder 渲染问题 java.lang.NoClassDefFoundError: sun/misc/Cleaner - Render issue java.lang.NoClassDefFoundError: sun/misc/Cleaner Applet错误-java.lang.NoClassDefFoundError:sun / misc / ProxyGenerator - Applet error - java.lang.NoClassDefFoundError: sun/misc/ProxyGenerator Signapk.jar 给出错误 java.lang.ClassNotFoundException: sun.misc.BASE64Encoder - Signapk.jar giving error java.lang.ClassNotFoundException: sun.misc.BASE64Encoder Java 11:补丁 sun.misc.BASE64Encoder - Java 11 : Patch sun.misc.BASE64Encoder mvn clean install 错误:找不到符号符号:class BASE64Encoder,位置:package sun.misc M1 Mac - mvn clean install ERROR: cannot find symbol symbol: class BASE64Encoder, location: package sun.misc M1 Mac 好主意使用sun.misc.BASE64Decoder / sun.misc.BASE64Encoder? - Is good idea use sun.misc.BASE64Decoder / sun.misc.BASE64Encoder? sun.misc.BASE64Encoder / Decoder用于获取byte [] - work sun.misc.BASE64Encoder/Decoder for getting byte[]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM