1,创建一个java project,完成编码

  1. Eclipse的资源管理器中选中你要打包的项目,右键点击,选择“导出”项,弹出导出对话框,在下面的Java目录下选择“JAR 文件”项,下一步,在导出目标路径TextField框中输入你想保存的路径,单击“完成”。 

  1. package com.lxl.it.test;
  2.  
  3. import org.apache.commons.net.ftp.FTP;
  4. import org.apache.commons.net.ftp.FTPClient;
  5. import org.apache.commons.net.ftp.FTPFile;
  6.  
  7. public class TestFtp1 {
  8. public static void main(String[] args) throws Exception {
  9. FTPClient ftpclient = new FTPClient();
  10. // String host = "10.202.33.210";
  11. // Integer port = 21;
  12. // String user = "hht";
  13. // String password = "hht";
  14. // String path="/HHT/hht5picture/CUR/991406990562/";
  15.  
  16. String host = args[0];//"10.202.4.80";
  17. Integer port = Integer.valueOf(args[1]);//21;
  18. String user = args[2];//"lixiaolong";
  19. String password = args[3];//"sf123456";
  20. String path = args[4];//"/home/lixiaolong/SUCC/963123456789";
  21. String character = args[5];//ISO-8859-1
  22. String swit = args[6];//ISO-8859-1
  23. // FTP连接
  24. ftpclient.connect(host, port);
  25. // FTP登陆
  26. ftpclient.login(user, password);
  27. FTPFile[] files = null;
  28. // ftpclient.setFileType(FTP.ASCII_FILE_TYPE);
  29. ftpclient.setFileType(FTP.BINARY_FILE_TYPE);
  30. // ftp服务器接收数据为被动模式,需要客户端主动链接服务端后才进行传输
  31. ftpclient.enterLocalPassiveMode();
  32. // 设定ftp传输模式为字符流模式
  33. ftpclient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
  34. // 检查文件是否存在,若不存在则返回false
  35. ftpclient.changeWorkingDirectory(path);
  36. files = ftpclient.listFiles();
  37. for (FTPFile ftpFile : files) {
  38. String fileName = ftpFile.getName();
  39. if("1".equals(swit)){
  40. fileName = new String(fileName.getBytes(character), "UTF-8");
  41. }
  42. System.out.println(fileName);
  43. }
  44. }
  45. }

2,

  1. 进入Step1中保存jar文件的目录下,用压缩文件管理器打开jar文件,进入META-INF\目录下,打开MINIFEST.MF文件,对MINIFEST.MF文件进行编写,格式如下:  
  1.  
  1. 请在文本格式下编写,每个空处只有一个空格,文本不能多余两个空行
  1. Manifest-Version: 1.0 告诉我们使用的是1.0manifest文件,第一行定义manifest的格式 
  1.  
  1. Main-Class: 主程序入口类名(注意:如果主程序带包,main函数在com包下的test.java中,则写如:com.test
  1.  
  1. Class-Path: 引用包路径,包之间空格隔开(lib是和test.jar同目录的一个子目录,test.jar要引用的some.jar包就在这里面。例如:Class-Path: lib/some.jar lib/some2.jar
  1.  
  1. Created-By: 创建者信息
  1. 注意冒号后面有一个空格
  1.  
  1. Manifest-Version: 1.0
  2.  
  3. Main-Class: com.lxl.it.test.TestFtp1
  4.  
  5. Class-Path: lib/commons-net-current.jar
  6.  
  7. 3
  1. 建立批处理文件.bat或.cmd如下start.cmd: cmd中开启jar程序命令: java -jar testCmd4.jar

java -jar testCmddata2.jar "10.202.4.80" 21 "lixiaolong" "sf123456" "/home/lixiaolong/SUCC/963123456789" "ISO-8859-1"  “0”

  1.  
  1. bat
    新建txt 输入如下类容,改后缀为bat文件 另起一行输入pause防止批处理完成后立即关闭
  1. java -jar d:/test/123/FTP/testCmddata2.jar "10.202.4.80" 21 "lixiaolong" "sf123456" "/home/lixiaolong/SUCC/963123456789" "ISO-8859-1"  0

如果需要把程序打包成jar文件,并且该jar文件依赖了比较多的第三方jar包,手动操作些MANIFEST.MF会出现比较多的问题,需要注意:

1 在Class-Path中指明依赖的jar包,如果jar文件存放在lib目录下存在两种放置方式:

a 如果是在你的jar文件中打入了lib目录,则Class-Path中指明的目录是lib/2.jar lib/2.jar

b 如果是在你的jar文件所在目录平级存放lib目录,与把lib放入jar文件一样,都是在Class-Path中指明的目录是lib/2.jar lib/2.jar

2 如果使用eclipse打包并选择已存在的MANIFEST.MF文件时,行不能过长,否则报错。这时你需要换行,换行是需要注意:

a 新行的开头使用空格,不能直接顶格

b jar文件行尾需要有空格,即需要保证jar文件前后都有空格,如“ lib/1.jar "

3 MANIFEST.MF文件写完后需要连续两行回车,并且新行需要顶格

  1. Class-Path: lib/httpclient-4.2.3.jar
     lib/commons-logging.jar
     lib/commons-codec-1.4.jar
     lib/commons-httpclient.jar

cmd运行java,含传参,引用jar的更多相关文章

  1. DOS命令运行java文件,批量引用jar包

    进入class文件目录 cd:\workspace\workspace_goodsownersystem\workspace_goodsownersystem\goodsownersystem\tar ...

  2. 关于Java函数传参以及参数在函数内部改变的问题——JAVA值传递与引用最浅显的说明!

    看了很多关于阐述JAVA传参到底是值传递还是引用的问题,有些说得很肤浅让人感觉似懂非懂的感觉,但是好像又能解决一些问题,然后就止步了.还有一些则是,讲得很深奥,看着好像很有道理的样子,但是其实还是没怎 ...

  3. 浅谈对java中传参问题的理解

    之前用的c/c++比较多,在c/c++中对于传参类型,无外乎就是传值.传引用.传指针这几种.但在java中,由于没有指针类型,其传参的方式也发生了相应的变化.在网上找了找,按我之前的理解,java中传 ...

  4. python 传值引用和传参引用

    调用同事的函数,传入goods_list,获取商品信息,然后将商品信息与goods_list的信息进行匹配,合并. 但是同事返回数据的同时改变了我传入的参数,goods_list.相当于传参引用,也就 ...

  5. CMD运行JAVA出现编码GBK的不可映射字符处理方法?

    方法一: (将notepad编辑器的编码方式改为ANSI后再进行程序代码的编译,将之前乱码的汉字删除重新输入正常的汉字) 1.notepad编辑器默认编码方式为UTF-8时,CMD里面执行javac ...

  6. cmd运行java程序---路径容易出错的问题

    初学者在首次使用cmd运行java程序时面临着很多的问题,重要的基本为“设置环境变量过程”与运行过程中的“路径出错问题”.由于环境变量设置的网络分享更多,且为大众情况,因此比较容易解决!   由于本人 ...

  7. 用cmd运行java可以javac不行(win10)

    今天发现个有趣的问题,用cmd运行java可以javac不行.(win10) java-home和classpath配置没有问题,最后发现问提出先在path,在这里看并没有异常. 在上面图片中点击编辑 ...

  8. Java中传参的值传递和引用传递问题(转)

    今天遇到了一个java程序,需要用参数来返回值(虽然最后用另一种方法实现了),在网上看到这样一篇文章,很受启发. 本文章来自于http://hi.baidu.com/xzhilie/blog/item ...

  9. 再谈Java方法传参那些事

    把一个变量带进一个方法,该方法执行结束后,它的值有时会改变,有时不会改变.一开始会觉得--“好神奇呀”.当我们了解java内存分析的知识后,一切都是那么简单明了了--“哦,这么回事呀”.但是今天的上机 ...

随机推荐

  1. AS3 条件编译

    转:http://www.lite3.cn/blog/?p=404&cpage=1 知道C/C++ 有条件编译,一直想着AS要是也有条件编译就好了,今天搜了半天Google,终于让我找到了 下 ...

  2. centos6.4 安装erlang

    erlang官网: http://www.erlang.org 下载程序去年:

  3. Spark SQL概念学习系列之Spark SQL 架构分析(四)

    Spark SQL 与传统 DBMS 的查询优化器 + 执行器的架构较为类似,只不过其执行器是在分布式环境中实现,并采用的 Spark 作为执行引擎. Spark SQL 的查询优化是Catalyst ...

  4. ocp 1Z0-042 1-60题解析

    1. Because of a power outage,instance failure has occurred. From what point in the redo log does rec ...

  5. HDU 4793 Collision (2013长沙现场赛,简单计算几何)

    Collision Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. Define custom @Required-style annotation in Spring

    The @Required annotation is used to make sure a particular property has been set. If you are migrate ...

  7. [iOS UI进阶 - 3.0] 触摸事件的基本处理

    A.需要掌握和练习的 1.介绍事件类型2.通过按钮的事件处理引出view的事件处理3.响应者对象 --> UIResponder --> UIView4.view的拖拽* 实现触摸方法,打 ...

  8. 精通Linux的“kill”命令

    无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭.在Linux(还有Mac),你可以用一个"kill"命令强制终结它.在这个教程中,我们将展示给你多种 ...

  9. CentOS6.5安装图形界面

    转载自http://www.cnblogs.com/zydev/p/5128788.html 一.使用网络安装(如果网络比较快,这个方法简单) yum groupinstall "Deskt ...

  10. 通过SCVMM分配iSCSI存储

    除了使用基于SMB3.0应用程序的文件共享外,还可以使用iSCSI目标服务器的SAN存储,然后在SCVMM控制台中添加基于SMI-S类型的存储,步骤如下: 1.将一台安装了 iSCSI目标 功能的Wi ...