cmd运行java,含传参,引用jar

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

在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 }
View Code



2,

进入Step1中保存jar文件的目录下,用压缩文件管理器打开jar文件,进入META-INF目录下,打开MINIFEST.MF文件,对MINIFEST.MF文件进行编写,格式如下:  

请在文本格式下编写,每个空处只有一个空格,文本不能多余两个空行
Manifest-Version: 1.0 告诉我们使用的是1.0的manifest文件,第一行定义manifest的格式 

Main-Class: 主程序入口类名(注意:如果主程序带包,main函数在com包下的test.java中,则写如:com.test

Class-Path: 引用包路径,包之间空格隔开(lib是和test.jar同目录的一个子目录,test.jar要引用的some.jar包就在这里面。例如:Class-Path: lib/some.jar lib/some2.jar

Created-By: 创建者信息
注意冒号后面有一个空格

Manifest-Version: 1.0

Main-Class: com.lxl.it.test.TestFtp1

Class-Path: lib/commons-net-current.jar

3
建立批处理文件.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”







bat
新建txt 输入如下类容,改后缀为bat文件 另起一行输入pause防止批处理完成后立即关闭

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文件写完后需要连续两行回车,并且新行需要顶格


Class-Path: lib/httpclient-4.2.3.jar
 lib/commons-logging.jar
 lib/commons-codec-1.4.jar
 lib/commons-httpclient.jar
原文地址:https://www.cnblogs.com/jiaozi-li/p/5749187.html