`
anxingyu_1984
  • 浏览: 39286 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

jdk引入第三方jar

阅读更多

要求:定时发信功能

细节:只允许装jdk

方案:定时用批处理来完成,发信功能由javamail 实现

步骤:1、定时 批处理脚本,以下是每5秒钟运行一次,运行10000000次 ,java 文件新建在 c 盘根目录下

ping -n 5 127.1>nul 
@echo off 
for /l %%x in (1,1,10000000) do ( 
echo %%x 
cd\
javac SendMail.java
java SendMail
ping -n 5 127.1>nul 
) 
pause

2、java 实现发信功能

首先,CLASSPATH 配置第三方jar包,如 :%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\java\jdk1.5.0_12\lib\thirdJar\mail.jar;D:\java\jdk1.5.0_12\lib\thirdJar\activation.jar;D:\java\jdk1.5.0_12\lib\thirdJar\mailapi.jar;

其次,编译文件,执行文件 SendMail.java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SendMail {
    public static void main(String[] args) {
        System.out.println("------start-----");

        SendMail sm = new SendMail();
        String from = "xingyu@bolasoft.com";
        String content = "<html><body>いつも大変、お世話になっております。<br>本日発行したアカウントをご連絡いたします。<br> よろしくお願いいたします。<br>==============================<br>株式会社シルクロード<br>  〒135‐0001 江東区毛利1‐12‐10‐1102<br>電話:03‐5624‐5805<br>Fax :03‐5624‐5807<br> ==============================<br>";
        String to = "anxingyu_1984@126.com";
        String password = "×××";
        String username = "xingyu@bolasoft.com";
        String subject = "発行通知";
        String host = "smtp.bolasoft.com";

        try {
//          读文件,得到发件人和收件人  
            File f=new File("C:/MBSTimingJobs/property.txt");
            InputStream is = new FileInputStream(f);
            List<Object> list = sm.readToBuffer(is);
            is.close();
            from=list.get(0).toString();
            username=list.get(0).toString();
            password=list.get(1).toString();
            to=list.get(2).toString();
            System.out.println(host);
            System.out.println(from);
            System.out.println(to);
            System.out.println(username);
            System.out.println(password);
             sm.smail(host, from, to, username, password, subject, content);
        } catch (Exception e) {
            // TODO Auto-generated catch block  
            e.printStackTrace();
        }
        System.out.println("------end-----");
    }

    public List<Object> readToBuffer( InputStream is)
            throws IOException {
        List<Object> list = new ArrayList<Object>();
        String line; // 用来保存每行读取的内容  
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        line = reader.readLine(); // 读取第一行  
        while (line != null) { // 如果 line 为空说明读完了  
            list.add(line);
            line = reader.readLine(); // 读取下一行  
        }
        return list;
    }

    public void smail(String host, String from, String to, String username,
            String password, String subject, String content) throws Exception {
        Properties props = new Properties();

        // Setup mail server  
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true");

        // Get session  
        Session session = Session.getDefaultInstance(props);

        // watch the mail commands go by to the mail server  
        session.setDebug(true);

        // Define message  
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        message.setSubject(subject);

        // create the message part  
        MimeBodyPart messageBodyPart = new MimeBodyPart();
        String fileAttachment = "C:/MBSTimingJobs/DayStatistc/"+dateFormat()+".csv";
        // fill message  
        Multipart multipart = new MimeMultipart();
        messageBodyPart.setContent(content, "text/html;charset=GBK");
        multipart.addBodyPart(messageBodyPart);
        // Part two is attachment  
        messageBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(fileAttachment);
        messageBodyPart.setDataHandler(new DataHandler(source));
        @SuppressWarnings("unused")
        String fileName = new String(fileAttachment.getBytes("ISO-8859-1"),"GBK");
        String[] arrayStr = fileAttachment.split("/");
        String file = arrayStr[arrayStr.length - 1];
        System.out.println("file = " + file);
        messageBodyPart.setFileName(file);
        multipart.addBodyPart(messageBodyPart);
        // Put parts in message  
        message.setContent(multipart);

        // Send message  
        message.saveChanges();
        Transport transport = session.getTransport("smtp");
        transport.connect(host, username, password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
    private static String dateFormat(){
        SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd");
        return sdf.format(new Date());
    }
}


注意:jar 所在位置,根据CLASSPATH可看出,发送邮件的源码中附件的位置 C:/MBSTimingJobs/DayStatistc/ ,附件名称是每天动态得到



ok!







分享到:
评论

相关推荐

    bcprov-jdk14-145.jar 快速下载

    《bcprov-jdk14-145.jar:第三方加密库的详解与应用》 在Java编程领域,安全性和加密技术扮演着至关重要的角色。bcprov-jdk14-145.jar是一款针对Java 1.4版本设计的第三方加密库,由The Legion of the Bouncy ...

    bcprov-jdk15on-1.54.jar中文文档.zip

    bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...

    bcprov-jdk15on-1.56.jar中文文档.zip

    bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...

    bcprov-jdk15on-1.58.jar中文文档.zip

    bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...

    vscode快速引入第三方jar包发QQ邮件

    VScode快速引入第三方jar包发QQ邮件 VSCode 作为一款功能强大且灵活的代码编辑器,拥有庞大的插件生态系统,可以满足各种开发需求。在开发过程中,我们经常需要引入第三方 jar 包来实现特定的功能,而 VSCode 提供...

    slf4j.jdk14-1.6.1.jar

    JUL允许控制日志级别,配置日志处理器和过滤器,但它相对较弱,功能相对有限,不如其他第三方日志框架强大。 3. **SLF4J与JUL桥接**: SLF4J.jdk14-1.6.1.jar的作用在于将SLF4J的调用转换为JUL的调用。当SLF4J在运行...

    jdk1.6的rt.jar的源码

    3. `org`和`com`包:主要包含第三方库和特定功能的扩展,如`org.w3c.dom`用于XML文档对象模型,`com.sun`包中则包含了一些Sun Microsystems提供的非公开API。 4. `sun`和`sunw`包:这部分源码通常被认为是Oracle ...

    jdk1.8 连接access数据库jar包

    在这种情况下,我们可以采用第三方库来解决这个问题。本篇文章将详细介绍如何使用UCanAccess库在Java(JDK 1.8)中连接到Access数据库。 UCanAccess是一个开源的Java库,它允许Java应用程序无需依赖Microsoft的JDBC...

    kettle jar包, jdk7版本和jdk8版本

    在"lib"目录下的文件可能是Kettle运行所需的库文件,这些库文件包含了各种第三方组件和依赖,如数据库连接驱动、XML解析库、网络通信库等。确保这些库文件与你的JDK版本兼容,并且正确配置,是成功运行Kettle的关键...

    json-lib-2.4-jdk15.jar全部JAR打包直接用

    `json-lib`作为一个第三方库,通常会通过Maven或Gradle等构建工具来添加依赖。然而,对于那些不使用这些工具或者没有自动管理依赖的项目,直接使用`json-lib-2.4-jdk15.jar`的全部JAR打包方式可以避免配置繁琐的依赖...

    spring对应jdk1.8的jar包

    4. **使用适配库**:有些第三方库提供对旧版Spring和新版JDK的适配,可以帮助解决兼容性问题。 在实际操作中,应首先分析具体冲突的错误信息,确定问题的根源,然后采取适当的解决策略。对于压缩包中的“3.2”文件...

    修改版json-lib-2.4-jdk14与json-lib-2.4-jdk13 支持JDK1.4与1.3与1.5

    官网发布的json-lib-2.4-jdk...本jar包经过改造,适用于JDK1.4,需要第三方JAR包的支持(commons-beanutils-1.8.2.jar,commons-collections-3.2.jar,commons-lang-2.5.jar,commons-logging-1.1.jar,ezmorph-1.0.6.jar)

    bcprov-ext-jdk15on-154.jar和bcprov-jdk15on-154.jar (2)

    - 使用第三方加密库可能涉及法规和合规性问题,尤其是在国际间传输数据时。务必了解并遵守适用的加密法规。 - 添加新的安全提供者可能会影响其他依赖于加密服务的组件,因此在生产环境中进行这些更改时要谨慎。 - 要...

    bcprov-jdk16-1.46.jar

    Java的标准版(JRE)在早期版本中提供的加密算法有限,对于一些特定的加密需求,如AES、RSA等,开发者可能需要第三方库如Bouncy Castle来增强其加密能力。这个库使得开发者可以轻松地在应用程序中集成高级加密标准...

    兼容 jdk 1.4 的json jar包

    在Java中,处理JSON通常需要借助第三方库,因为Java标准库直到Java SE 6才包含了内置的JSON支持。对于兼容JDK 1.4的JSON处理,这需要寻找一个老版本的JSON库,因为JDK 1.4是在2002年发布的,远早于Java对JSON的内置...

    spring切面AOP所使用的jar包

    - **代理(Proxy)**:Spring AOP通过代理模式实现对目标对象的拦截,有JDK动态代理和CGLIB代理两种方式。 4. **Spring AOP与AspectJ的比较**: Spring AOP基于代理模型,而AspectJ则是一个完整的AOP编译器,可以...

    bcprov-jdk15on-154/bcprov-ext-jdk15on-154

    默认情况下,JDK仅包含有限的加密算法,对于更复杂的加密需求,开发者通常会引入第三方的JCE提供者,比如Bouncy Castle。Bouncy Castle的优势在于其全面的算法支持、优秀的性能以及对开放标准的高度兼容。 `bcprov-...

    SpringBoot 打成jar包供第三方引用自动装配方案实现

    看了源码之后,总有种蠢蠢欲动的感觉,想着以后啥时候牛逼了,自己也可以用springboot写个第三方组件,让别人引入jar包就行。虽然知道目前水平有限,先试试普通的jar包如何与spring自动装配吧~ 环境 jdk1.8 ...

    IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法

    在使用IntelliJ IDEA开发Java项目时,有时我们需要引入第三方jar包或查看其源码以进行调试或学习。然而,可能会遇到一个常见的错误提示:“decompiled.class file bytecode version:52.0(java 8)”,这表明IDE在尝试...

Global site tag (gtag.js) - Google Analytics