关于sun.misc.BASE64Encoder的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于sun.misc.BASE64Encoder的问题相关的知识,希望对你有一定的参考价值。

以下是一个用JAVA编写发送邮箱的代码,是从配套教程的源代码.可是老是编译显示警告.请各位高手指点一下,小弟刚学JAVA不久

package auth;

import java.net.*;
import java.io.*;

public class MailSenderWithAuth
private String smtpServer="smtp.sina.com.cn"; //SMTP邮件服务器的主机名
private int port=25;

public static void main(String[] args)
Message msg=new Message("tongbojian@sina.com", //发送者的邮件地址
"tongbojian2005@yahoo.com.cn", //接收者的邮件地址
"hello", //邮件标题
"hi,I miss you very much."); //邮件正文
new MailSenderWithAuth().sendMail(msg);


public void sendMail(Message msg)
Socket socket=null;
try
socket = new Socket(smtpServer,port); //连接到邮件服务器
BufferedReader br =getReader(socket);
PrintWriter pw = getWriter(socket);
String localhost= InetAddress.getLocalHost().getHostName(); //客户主机的名字

String username="tongbojian";
String password="123456";
//对用户名和口令进行base64编码

username = new sun.misc.BASE64Encoder().encode(username.getBytes());
password = new sun.misc.BASE64Encoder().encode(password.getBytes());
............... finally
try
if(socket!=null)socket.close();
catch (IOException e) e.printStackTrace();



/** 发送一行字符串,并接收一行服务器的响应数据*/
private void sendAndReceive(String str,BufferedReader br,PrintWriter pw) throws IOException
if (str != null)
System.out.println("Client>"+str);
pw.println(str); //发送完str字符串后,还会发送“\r\n”。

String response;
if ((response = br.readLine()) != null)
System.out.println("Server>"+response);


private PrintWriter getWriter(Socket socket)throws IOException
OutputStream socketOut = socket.getOutputStream();
return new PrintWriter(socketOut,true);

private BufferedReader getReader(Socket socket)throws IOException
InputStream socketIn = socket.getInputStream();
return new BufferedReader(new InputStreamReader(socketIn));



class Message //表示邮件
...............................



编译后信息如下:

F:\网络编程\第二讲\auth>javac MailSenderWithAuth.java
MailSenderWithAuth.java:31: 警告:sun.misc.BASE64Encoder is Sun proprietary API
and may be removed in a future release
username = new sun.misc.BASE64Encoder().encode(username.getBytes());
^
MailSenderWithAuth.java:32: 警告:sun.misc.BASE64Encoder is Sun proprietary API
and may be removed in a future release
password = new sun.misc.BASE64Encoder().encode(password.getBytes());
^

BASE64Encoder和Decoder是非官方JDK里面的类。虽然可以在JDK里能找到并使用,但是在API里查不到。这两个可能是SUN公司内部人使用的,我们使用后出了问题也就不能责怪SUN。据我所知SUN开头的包里面的类都找不到相关文档,所以里面可能都是非官方的类。出现警告也是非常合理和正常的,因为以后SUN可能会更新或这删除那些非官方的类。不用管它。 参考技术A http://wenku.baidu.com/view/05c0a63067ec102de2bd89a7.html

关于数学,关于年少的感动,关于初心

  一开始努力学数学是3年级吧,记得数学老师布置了6,7道题目,看谁能解出来,那个时候,大家都觉得能做出老师给的题目好厉害好聪明啊,很不巧的是我确实不会解,很抱歉我不是什么数学天才,这不是一个天才的故事,哈哈,然后就这能羡慕人家能做出题的小朋友,年少时的心境大概就是如此吧,现在人说羡慕嫉妒恨,小朋友们之间只有羡慕和小小的嫉妒,所谓赤子之心嘛,哈哈。

  然后就是向他们请教,然后联系,预习,努力做难题,慢慢地慢慢地,大家都觉得你好厉害好聪明啊,内心还是很开心的,简简单单的只是开心,哇,我真厉害,哈哈,以致于很喜欢这种感觉,有时候碰到一时做不出来的题目,心里就一直有一股不服输的劲,上语文课也做,偷偷地把书放到桌洞里,假装听课,其实在想数学题目,相信大家都有过这种经历吧,每当一道题目做出来的时候,那种成就感真是好多年都没有了。

  慢慢地慢慢地就不怎么喜欢数学了,也不去在乎那种感动了,到底是为什么,可能是心境上的变化吧,年少气盛,难免要与人挣一时之长短,长大些,成熟了,也不在乎这些东西了,到底是对是错,又有谁说的清呢?但是和我那两个伙计在高三夜晚,在洗刷间昏黄的灯光下,曾有一段时间在做一些不等式的题目,与高考无关,却很有趣,只是不想单纯的让对方超过,因为大家水平都在伯仲之间,总不想低别人一头,所以努力解题,还是很开心的,我那个时候数学不知道怎么回事,怎么考都考不到140分了,真的是,到现在也搞不懂,就这样这一年里我注意到了一个女生,一级部的一个女生,长得挺高的,眼睛大大的,感觉既可爱有鬼精的那种,可是在高三也都不算什么了,没来的及表白,也没有什么资本表白,就这样一直到大二的现在,她在央财,这件事我会问个清楚,我一定会变得比她强,就算以后她还是不会接受我我起码让他承认我很优秀,嗯,诶,跑远了。

  还是没有学数学专业,选了计算机,在现实面前,还是选择了低头,不知道什么时候开始,完全不care数学了,直到现在,打算进军机器学习,发现概率论,线性代数都不行,不够深入不够扎实,我只能说,曾经有一份真挚的数学学习机会摆在我面前,我却没有珍惜,直到现在才追悔莫及,但好在还不晚,数学,曾经的感动也罢,如今的漠然也罢,总是要认真对待,这世上的事,并不是只有有兴趣的人才能做好,就算凭借坚持和努力,也一样能做好。

  在这几年里,我失去了很多,很多美好的东西,渐渐地开始放纵,但既然知道了,就改掉,自律,坚持,努力,无论何时都不能忘记,说是不后悔这几年光阴,是不可能的,但是成长吗,总是这样,人也总是这样才会真正的改变,就当是多了几年经历吧,那加油吧,就算身边没有了志同道合的人,就算是自己一个人,也不要再被环境算影响了,我不想说要去做周敦颐笔下的莲花,但一定要对得起自己,曾经说过不要变成自己曾经最讨厌的人,是啊,一定不要变成自己曾经最厌恶的人,不忘初心,说到底,又有几个人能做到呢,但是,为什么你做不到呢?茫茫人生,我不知道我究竟喜欢什么,但我想,即使这样,也要竭尽全力做正确的事情,即使最终没有找到让自己心动的东西,也不枉一生,不枉上天所赐的年华岁月。

  至此,一往无前,不问归期。

以上是关于关于sun.misc.BASE64Encoder的问题的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 上有关 sun/misc/BASE64Encoder 的错误 [重复]

sun.misc.BASE64Encoder在Eclipse中不能直接使用的原因和解决方案

JDK从1.8升级到9.0.1后sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用

android : 解决android无法使用sun.misc.BASE64Encoder sun.misc.BASE64Decoder 的问题, 无需添加rt.jar

sun.misc.BASE64Encoder找不到jar包的解决方法

sun.misc.BASE64Encoder找不到jar包的解决方法