JAVA 关于随手小实验小工具记事本写法

本博客只是为了写一段简单的编译运行的 不用基于IDEA 或者 Eclipse 等 主流的JAVA ide。

废话不多说,用简易发送邮件为例。在jdk 相关环境装完成后,对应的基础jar 在sun 或者后面oracle 都有所优化等这个不赘述,楼主的本地环境是jdk1.8 (cmd==>java -version)

java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

 工具记事本

也许长时间用IDE工具的都有智能的提示,记事本无法提供只能一步步写代码,第一次写这么长的代码 当然也得找找API 和各路大神的现成的东西。(代码不写包名层级 不要给自己找刺激了)

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;


class EmailSender{

    static String senderAddress = "用你自己的@qq.com";

    static String bcAddress = "依旧用你自己的@foxmail.com";

    static String bccAddress = "需要给自己开暗门的@163.com";

    static String senderAccount = senderAddress;

    static String senderPassword = "rdrtsogsheyhhfge";//QQ邮箱独有的 不知道怎么设置去百度下就好了

//楼主比较懒直接用构造方法调用了    

public EmailSender(String context) throws MessagingException {

        Properties props = new Properties();

        props.setProperty("mail.smtp.auth", "true");

        props.setProperty("mail.transport.protocol", "smtp");

        props.setProperty("mail.smtp.host", "smtp.qq.com");

        Session session = Session.getInstance(props);

        session.setDebug(true);

        Message msg = new MimeMessage(session);

        msg.setFrom(new InternetAddress(senderAddress));

        msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(bcAddress));
        msg.setRecipient(MimeMessage.RecipientType.BCC,new InternetAddress(bccAddress));

        msg.setSubject("Test is OK");

        msg.setContent(context, "text/html;charset=UTF-8");

        msg.setSentDate(new Date());

        Transport transport = session.getTransport();

        transport.connect(senderAccount, senderPassword);

        transport.sendMessage(msg,  new Address[]{new InternetAddress(recipientAddress)});

        transport.close();
        System.out.println("Send success");
    }

    public static void main(String[] args) throws MessagingException {
        new EmailSender("TEST JAVAC -D .JAR -CP.;/.xxx.jar");
    }

}

 

就这一个java 文件 依赖的东西有点多

最开始以为只会依赖 javax-mail-api ,所以编译是可以通过的神奇吧?

此处多说一句:jdk 环境变量没有配置 “.;" 记得按照其他的**** 帖子进行配置下

编译:

    javac -cp ".;.\javax-mail-api-version.jar" EmailSender.java

编译讲道理不会报错(没报错目录下面会有.class文件) 记得将java 文件和jar 包放在一起 并且 cmd 进入该目录

然后照猫画虎 因为在 Helloworld.java 时候 就是javac 编译以后 直接 java 运行对吧

所以

java -cp ".;.\javax-mail-api-version.jar" EmailSender

JAVA 关于随手小实验小工具记事本写法

神奇吧 报错了,对于一个经常用IDE工具尤其是maven 或者gradle的骚年人来说 这个也不难 百度**** 查下很简单就会发现缺少了 mail 版本包。找一个版本的download 下来。

再来一遍

javac -cp ".;.\javax-mail-api-version.jar; .\mail-version.jar" EmailSender.java

编译还是可以生成class 本以为没事 

继续运行

java -cp ".;.\javax-mail-api-version.jar; .\mail-version.jar" EmailSender

================================================================================================

涛声依旧,黑屏上面还是打印着这些黑底白字。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以为是路径啥的折腾吧。没用

最后结果是什么::::::::::

--------------------------------结论-------------->>>>>>>>>>JAVA 类继承引用 相关的话,是要讲究先后顺序滴!

按照上述调整后

javac -cp ".;.\mail-version.jar;.\javax-mail-api-version.jar " EmailSender.java

java -cp ".;.\mail-version.jar;.\javax-mail-api-version.jar " EmailSender

 

JAVA 关于随手小实验小工具记事本写法

成功了! 

小伙伴们: java 带jar 的编译运行不仅会了,还知道了 类的加载顺序,平时IDE 都会智能的给你补齐提示啥的。但是…………自己被自己坑了一把,所以发个小博客来教训下自己。(要知道平时这个点,我这个程序员早下班了)。