一、Java安裝之Java環境安裝
1. 從sun主頁下載JDK for Linux版本。這里下載的是jdk-6u6-linux-i586.bin。
2. 用root用戶登錄ubuntu,或是在普通用戶下用su命令切換用戶。切換到所需的安裝目錄。類型:cd <目錄路徑名> 例如,要在 /usr/java/ 目錄中 安裝軟體,請鍵入:cd /usr/java/, 把jdk-6u6-linux-i586.bin文件拷貝這個目錄裡面,設置許可權為可執行類型:chmod a+x jre-6u6-linux-i586.bin
3. 啟動安裝過程。鍵入:./jre-6u<version>-linux-i586.bin。 接下來會提示二進制的許可協議,鍵入yes回車即可。安裝過程如果遇到一些問題,都同樣鍵入yes就可以。
4. 一路下來,最後看到Done字樣,就完成了Java環境的安裝。安裝的位置就是當前目錄 /usr/java,當然你可以選擇在別的位置。可以用ls命令查看一下是否正常。
二、Java安裝之環境變數配置
上面安裝完畢後,直接在shell裡面輸入java是不起作用的,需要先配置一下環境變數。一般都會用export命令,不過這樣設置只對當前shell 起作用,重啟或是切換到別的shell會話就不起作用了。可以選擇配置 .bashr文件。用vi或是gedit打開,在末尾添加下面的內容
export JAVA_HOME=/usr/java/jdk1.6.0_06 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
然後保存。再在shell裡面試驗一下是否安裝成功。echo一下各個變數是否正常,然後輸入java -version看看。
還有一種方式是修改/etc/profile,這樣相當於修改系統配置文件,對所有用戶都有影響,我在嘗試的過程可能輸入了一些異常字元,導致整個ubuntu無法用GUI登錄,無奈只能用文本登錄,然後再次把profile改回來才正常。
好了之後可以先試一下用vi新建一個Hello的Java文件,然後編譯一下試運行。
三、Java安裝之Eclipse安裝
Linux下面的Eclipse在ubuntu的界面渲染下看起來非常漂亮。先從Eclipse社區下載一個Linux版本的,這里下載的是europa 版本的gz包。只要解壓到一個目錄就可以,這里選擇/opt/eclipse下面。Eclipse是解壓就可以使用的。不過為了方便,我們在桌面做一個啟動器把啟動目標指向到Eclipse的安裝目的地,選擇裡面已有的圖標文件,這樣就完成了。不過默認Eclipse是找不到Java執行路徑的,有網友寫了這樣一個腳本eclipse.sh 放到/usr/local/bin目錄下,記得加上775許可權。然後把啟動器位置指到這里eclispe.sh。下面是eclipse.sh的內容:
#!/bin/bash # # 執行 eclipse 2.1.1 # export JAVA_HOME=/usr/java/XXX export CLASSPATH=/usr/java/XXX/lib /opt/eclipse/eclipse -vm /usr/java/XXX/bin/java -data ~/workspace & # -vm 參數用以指定使用哪一個 jvm 來執行Eclipse, # -date參數用以指定Eclipse的數據目錄。在此指定其存在用戶根目錄(~)下的workspace目錄中
Ⅱ java程序怎樣讀取linux系統下的文件
java是跨平台語言,在linux上讀文件跟在windows上讀文件是一樣的 只是文件路徑不一樣,可以用File對象和FileInputSteam來讀取。但要注意文件編碼問題。
如果有中文請做適當的編碼轉換,通常情況下Linux的默認字元編碼為UTF-8編碼方式,項目可以直接採用utf8編碼方式操作.用System.getProperty("file.encoding")可檢查系統編碼格式。可改操作系統的文件系統編碼,vi /etc/profile,在文件末尾加上
export LANG="zh_CN.GBK"
export LC_ALL="zh_CN.GBK"
編碼轉換代碼:new String(files[i].getName().getBytes("GBK"),"UTF-8");
文件操作的核心代碼請參考下面代碼:
String path= "/home/";
path= "/home/multiverse/Repository/PMEPGImport";
File file=new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
//FileInputStream fis = new FileInputStream("fileName");
//InputStreamReader isr = new InputStreamReader(fis,"utf-8");
StringBuffer buffer = new StringBuffer();
String text;
BufferedReader input = new BufferedReader (new FileReader(tempList[i]));
while((text = input.readLine()) != null)
buffer.append(text +"/n"); }
if (tempList[i].isDirectory()) {
System.out.println("文件夾:"+tempList[i]);
}
}
Ⅲ linux伺服器上部署java項目,本地windos通過瀏覽器訪問項目怎麼下載項目目錄下的文件到本
既然使用了java,實現這種功能就與OS無關了,否則叫什麼跨平台。其實用瀏覽器下載伺服器端文件比較容易:
首先,要讓用戶能找到並選擇文件(jsp里實現,部分代碼)
String realPath=request.getSession().getServletContext().getRealPath("")+"/documents";//項目根目錄下文件路徑
File fileDir=new File(realPath);
String[] fileList=fileDir.list();//返回目錄下文件名稱數組
for(int i=0;i<fileList.length;i++){
//這里遍歷出來要顯示的文件名,加到td里,後面再加上個「下載」按鈕
//使用隱藏input記錄文件名和路徑fileName,filePath
}
其次,提交下載請求並下載
使用form提交用戶選擇的文件名,Action中部分代碼:
String fileName=req.getParameter("fileName");//HttpServletRequest req
String filePath=req.getParameter("filePath");
try {
FileDownload.Download(filePath+"/"+fileName, "attachment", res);
} catch (Exception e) {
e.printStackTrace();
}
下面是 FileDownload類:
package com.aerolink.aocs.util.fileUtil;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
* Title: FileDownload類
* </p>
* <p>
* Description: 實現文件下載功能
* </p>
* <p>
* 將文件名,HttpServletRequest,HttpServletRespons傳給靜態方法Download即可
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: 北京天航信達信息技術有限公司
* </p>
*
* @author 陶源
* @version 2.0
*/
public class FileDownload {
/**
* @param fileName
* @param res
* @throws FileNotFoundException
* @throws IOException
*/
public static void Download(String fileName,
HttpServletResponse res)
throws FileNotFoundException, IOException {
String fileContentType = "application/octet-stream";
String fileDownloadType = "attachment";
long totalsize = 0;
// 取得要傳輸的文件,實際應用是可以將文件路徑以參數的形式傳入
File f = new File(fileName);
// 取文件長度
long filelength = f.length();
byte[] b = new byte[1024];
// 設置文件輸出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);
int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");
// 設置相應頭信息,讓下載的文件顯示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 確定長度
String filesize = Long.toString(filelength);
// 設置輸出文件的長度
res.setHeader("Content-Length", filesize);
// 取得輸出流
ServletOutputStream servletOut = res.getOutputStream();
// 發送文件數據,每次1024位元組,最後一次單獨計算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最後一次傳送的位元組數
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 讀入位元組數組
in.readFully(leftpart);
// 寫入輸出流
servletOut.write(leftpart);
} else {
// 讀入1024個位元組到位元組數組 b
in.readFully(b);
// 寫和輸出流
servletOut.write(b);
}
}
servletOut.close();
}
/**
* @param fileName
* @param fileDownloadType
* @param res
* @throws FileNotFoundException
* @throws IOException
*/
public static void Download(String fileName, String fileDownloadType,
HttpServletResponse res)
throws FileNotFoundException, IOException {
String fileContentType = null;
if (fileName.endsWith(".doc")) {
fileContentType = "application/msword";
} else if (fileName.endsWith(".pdf")) {
fileContentType = "application/pdf";
} else if (fileName.endsWith(".xls")) {
fileContentType = "application/vnd-ms-excel";
} else if (fileName.endsWith(".txt")) {
fileContentType = "text/plain";
} else {
fileContentType = "application/octet-stream";
}
long totalsize = 0;
// 取得要傳輸的文件,實際應用是可以將文件路徑以參數的形式傳入
File f = new File(fileName);
// 取文件長度
long filelength = f.length();
byte[] b = new byte[1024];
// 設置文件輸出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);
int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");
// 設置相應頭信息,讓下載的文件顯示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 確定長度
String filesize = Long.toString(filelength);
// 設置輸出文件的長度
res.setHeader("Content-Length", filesize);
// 取得輸出流
ServletOutputStream servletOut = res.getOutputStream();
// 發送文件數據,每次1024位元組,最後一次單獨計算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最後一次傳送的位元組數
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 讀入位元組數組
in.readFully(leftpart);
// 寫入輸出流
servletOut.write(leftpart);
} else {
// 讀入1024個位元組到位元組數組 b
in.readFully(b);
// 寫和輸出流
servletOut.write(b);
}
}
servletOut.close();
}
}