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 }
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