- 浏览: 123292 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (130)
- JUnit4学习 (0)
- Spring3.X学习 (2)
- 日记 (1)
- 文学类 (2)
- Java (15)
- Thingking In Java (11)
- org.apache.poi (4)
- XML (2)
- Log4j (1)
- Jar包收集 (2)
- ExtJs (1)
- 汇编语言 (11)
- 开发工具 (0)
- 电子书 (2)
- Oracle (6)
- Ajax (1)
- Jquery (2)
- myBatis (1)
- Spring2.5学习 (6)
- Tomcat (1)
- MyEclipse (1)
- JSP (1)
- Linux shell 脚本攻略 (7)
- Python3 (2)
- HTML5 (5)
- JavaScript (7)
- Hadoop-1.2.1 (2)
- Python2.7 (12)
- Django (3)
- 软件安装 (1)
- 高级Bash脚本编程指南 (7)
- Linux命令 (3)
- Ansible (2)
- MySQL (2)
- 病历 (1)
- 操作系统 (1)
- CSS (0)
- CSS3 (0)
- 面试题 (1)
最新评论
-
hw1287789687:
http://www.cnblogs.com/hccwu/p/ ...
Java获取真实的IP地址 -
liubey:
String ip = request.getHeader(& ...
Java获取真实的IP地址 -
bewithme:
我记得uploadify这破东西只能在chrome浏览器中才有 ...
Struts2结合Jquery.uploadify上传插件的应用 -
MrLee23:
http://mrlee23.iteye.com/admin/ ...
Struts2结合Jquery.uploadify上传插件的应用 -
crysik:
import com.eshore.ppm.model.com ...
Struts2结合Jquery.uploadify上传插件的应用
//Java利用第三方jar包(ganymed-ssh2-build210.jar)读取远程主机文件
package com.poson.cb.web.action.bill;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SFTPv3Client;
import ch.ethz.ssh2.SFTPv3FileAttributes;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import com.poson.cb.ext.domain.RealTimeBilling;
import com.poson.cb.lib.dr.DRApiHPImpl;
import com.poson.cb.service.AppException;
import com.poson.cb.web.action.BaseAction;
//实时清,账单文件查询
public class RealTimeBillingAction extends BaseAction{
Runtime runtime=Runtime.getRuntime();
String useHome=System.getProperty("user.home");
String idxMasterPath = useHome+"ADR/cb/data/master/"; //主侧IDX文件路径
String idxSlavePath = useHome+"ADR/cb/data/slave/"; //备侧文件路径
String[] fileDirName={"bill","mobile","fixed","fileout"};
short outTime=2; //设置超时时间为2分钟
String shIsMaster="Master"; //当前主侧默认是上海
Connection con=null;
public ActionForward realTimeActionForward(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws AppException, Exception {
List bjList=new ArrayList();
List shList=new ArrayList();
InetAddress address=InetAddress.getLocalHost();
// 1.0 获取主备角色
short sysSate = new DRApiHPImpl().getSystemState();
System.out.println("第三种方法获得主备角色:" + sysSate); // 0-主系统,1-备系统,2-非融灾系统
//判断上海是否是主侧
if(sysSate==1 && (getCurrentHostAddress().equals("132.32.24.105"))){
shIsMaster="slave";
}
// 2.0 获取当前侧容灾平台正在处理的IDX(文件)名称
Process p1 = runtime
.exec(new String[] { "/bin/sh", "-c", "dr_stat -l" });
BufferedReader bReader = new BufferedReader(new InputStreamReader(p1
.getInputStream()));
String firstLine = bReader.readLine();
// 读取第二行的记录(第一行为unix返回的列)
while ((firstLine = bReader.readLine()) != null) {
String[] arrs = firstLine.split("\\s{1,}"); // 以空格为分隔符
// 获取IDX文件名
String idxName = arrs[0];
if(idxName != null && !"".equals(idxName)){
//得到当前侧的文件集合
RealTimeBilling billing=getFileNameListByIdxOfCurr(idxName.trim(),sysSate);
if(null !=billing){
if(getCurrentHostAddress().equals("132.129.24.18") || getCurrentHostAddress().equals("132.129.24.5")){
shList.add(billing);
}else {
bjList.add(billing);
}
}
}
}
// 获得对端侧文件集合
short endSysStat;
if(sysSate==0){
endSysStat=1;
}else {
endSysStat=0;
}
Session session=getEndtoSession();
//获取对端idxName
session.execCommand("dr_stat -l");
BufferedReader bReader2=new BufferedReader(new InputStreamReader(session.getStdout()));
String endFirstLine = bReader2.readLine();
while((endFirstLine=bReader2.readLine())!=null){
String[] endArrs = endFirstLine.split("\\s{1,}"); // 以空格为分隔符
// 获取IDX文件名
String endIdxName = endArrs[0].trim();
RealTimeBilling billing1 =getFileNameListByIdxOfEnd(session, endIdxName, endSysStat);
if(null !=billing1){
if(getCurrentHostAddress().equals("132.129.24.18") || getCurrentHostAddress().equals("132.129.24.5")){
bjList.add(billing1);
}else {
shList.add(billing1);
}
}
}
session.close();
p1.destroy();
request.setAttribute("bjList", bjList);
request.setAttribute("shList", shList);
request.setAttribute("shIsMaster", shIsMaster);
return actionMapping.findForward("realTimeBilling");
}
//设置跳转方法
public ActionForward realTimeForward(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws AppException, Exception {
request.setAttribute("bjList", "");
request.setAttribute("shList", "");
request.setAttribute("shIsMaster", "");
return actionMapping.findForward("realTimeForward");
}
// 获得对端session
public Session getEndtoSession(){
String hAddress = "";
String ip,user,pwd;
Session session=null;
try {
//InetAddress iAddress = InetAddress.getLocalHost();
hAddress =getCurrentHostAddress();
System.out.println("本机的IP地址是:" + hAddress);
String ipConfigFile = useHome + "web" + File.separator + "CB"
+ File.separator + "WEB-INF" + File.separator
+ "ipconfig.properties";
Properties properties = new Properties();
properties.load(new FileInputStream(ipConfigFile));
if (hAddress.equals("132.129.24.18") || hAddress.equals(properties.get("sIp").toString().trim())) {
ip=properties.get("bIp").toString().trim();
user=properties.get("bUser").toString().trim();
pwd=properties.get("bPwd").toString().trim();
} else {
ip=properties.get("sIp").toString().trim();
user=properties.get("sUser").toString().trim();
pwd=properties.get("sPwd").toString().trim();
}
System.out.println("对端服务器的IP="+ip+" 用户名:"+user+" 密码:"+pwd);
con=new Connection(ip);
con.connect();
boolean isAuthenticate=con.authenticateWithPassword(user, pwd);
if(isAuthenticate==false){
System.out.println("连接对端服务器认证失败......");
throw new IOException("Authentication failed....");
}
session=con.openSession();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return session;
}
//获取对端文件集合
public List getEndToFileNameList(){
Session session=getEndtoSession();
//1.0 获得对端侧
return null;
}
//这种方法可以获得主备系统
public String getMachineRole(){
String mRole="";
try {
String drStatStr="dr_stat -d|head -n1|sed 's/^.*=//'|tr [A-Z] [a-z]";
Process p2=Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",drStatStr});
InputStreamReader inReader=new InputStreamReader(p2.getInputStream());
LineNumberReader lReader=new LineNumberReader(inReader);
p2.waitFor();
while((mRole=lReader.readLine()) !=null){
System.out.println("用第二种方法获得主机角色:"+mRole);
}
} catch (IOException e) {
System.out.println("用第二种方法获得主机角色失败");
e.printStackTrace();
} catch (InterruptedException e) {
System.out.println("用第二种方法获得主机角色失败");
e.printStackTrace();
}
//output :master
return mRole;
}
//通过文件idxName查找对应的文件名称
public RealTimeBilling getFileNameListByIdxOfCurr(String idxName,int sysStat) throws Exception{
RealTimeBilling rBilling=null;
for (int i = 0; i < fileDirName.length; i++) {
String filePath="";
if(sysStat==0){
//在主侧目录查找
filePath=idxMasterPath+fileDirName[i]+File.separator+idxName;
}else if (sysStat==1) {
//在备侧目录查找
filePath=idxSlavePath+fileDirName[i]+File.separator+"processing"+File.separator+idxName;
}
File file=new File(filePath);
if(file.exists()){
rBilling=new RealTimeBilling();
System.out.println("打印文件所在目录:"+file.getPath());
//读取idx文件并获取文件名称
LineNumberReader lNumberReader=new LineNumberReader(new FileReader(file));
String linInfo ="";
while((linInfo=lNumberReader.readLine())!=null){
if(linInfo.indexOf("FILE_NAME")>0){
String fileName=lNumberReader.readLine().trim();
rBilling.setFileName(fileName);
if((Calendar.getInstance().getTimeInMillis()-file.lastModified())/1000/60 > outTime){
rBilling.setOutTime(true);
}else {
rBilling.setOutTime(false);
}
System.out.println("打印当前侧文件名称:"+fileName +"是否超过2分钟:"+rBilling.isOutTime());
break;
}
}
}
}
return rBilling;
}
//在对端侧查找对应的文件
public RealTimeBilling getFileNameListByIdxOfEnd(Session session ,String idxName,short sysStat) throws Exception{
RealTimeBilling rBilling=null;
for (int i = 0; i < fileDirName.length; i++) {
String filePath="";
if(sysStat==0){
//在主侧目录查找
filePath=idxMasterPath+fileDirName[i];
}else if (sysStat==1) {
//在备侧目录查找
filePath=idxSlavePath+fileDirName[i]+File.separator+"processing";
}
session.execCommand("find "+filePath+" -name "+idxName);
BufferedReader bReader1=new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()))) ;
String pathStr;
while((pathStr=bReader1.readLine())!=null){
session.execCommand("cat "+pathStr);
BufferedReader bReader2=new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()))) ;
String endFileLine;
while((endFileLine=bReader2.readLine())!=null){
if(endFileLine.indexOf("FILE_NAME")>0){
String fileName=bReader2.readLine().trim();
System.out.println("对端提取的文件名称为:"+fileName);
rBilling=new RealTimeBilling();
rBilling.setFileName(fileName);
SFTPv3FileAttributes sAttributes= new SFTPv3Client(con).lstat(filePath);
Integer mtime= sAttributes.mtime; //获得文件的修改时间 需要确认返回的值是否以毫秒为单位
if(((Calendar.getInstance().getTimeInMillis()-Long.parseLong(mtime.toString()))/1000/60) > outTime){
rBilling.setOutTime(true);
}else {
rBilling.setOutTime(false);
}
System.out.println("对端提取的idxName文件所在路径为:"+filePath +" 该文件的访问时间为:"+mtime +" 是否超时:"+rBilling.isOutTime());
break;
}
}
}
}
return rBilling;
}
public String getCurrentHostAddress(){
String hoString="";
try {
InetAddress iAddress=InetAddress.getLocalHost();
hoString= iAddress.getHostAddress();
} catch (UnknownHostException e) {
System.out.println("获取本机IP地址出错错误......");
e.printStackTrace();
}
return hoString;
}
public static void main(String[] args) {
new RealTimeBillingAction().getEndtoSession();
}
}
利用第三方jar包(ganymed-ssh2-build210.jar)读取远程主机文件的主要步骤为:
1.0 获得session
con=new ch.ethz.ssh2.Connection(ip);
con.connect();
boolean isAuthenticate=con.authenticateWithPassword(user, pwd);
session=con.openSession();
2.0 通过session执行命令并读取返回结果
session.execCommand("find "+filePath+" -name "+idxName);
BufferedReader bReader1=new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()))) ;
2013-09-19 0:19 记 @sanliheludongkou.xichengqu.beijing
package com.poson.cb.web.action.bill;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SFTPv3Client;
import ch.ethz.ssh2.SFTPv3FileAttributes;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import com.poson.cb.ext.domain.RealTimeBilling;
import com.poson.cb.lib.dr.DRApiHPImpl;
import com.poson.cb.service.AppException;
import com.poson.cb.web.action.BaseAction;
//实时清,账单文件查询
public class RealTimeBillingAction extends BaseAction{
Runtime runtime=Runtime.getRuntime();
String useHome=System.getProperty("user.home");
String idxMasterPath = useHome+"ADR/cb/data/master/"; //主侧IDX文件路径
String idxSlavePath = useHome+"ADR/cb/data/slave/"; //备侧文件路径
String[] fileDirName={"bill","mobile","fixed","fileout"};
short outTime=2; //设置超时时间为2分钟
String shIsMaster="Master"; //当前主侧默认是上海
Connection con=null;
public ActionForward realTimeActionForward(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws AppException, Exception {
List bjList=new ArrayList();
List shList=new ArrayList();
InetAddress address=InetAddress.getLocalHost();
// 1.0 获取主备角色
short sysSate = new DRApiHPImpl().getSystemState();
System.out.println("第三种方法获得主备角色:" + sysSate); // 0-主系统,1-备系统,2-非融灾系统
//判断上海是否是主侧
if(sysSate==1 && (getCurrentHostAddress().equals("132.32.24.105"))){
shIsMaster="slave";
}
// 2.0 获取当前侧容灾平台正在处理的IDX(文件)名称
Process p1 = runtime
.exec(new String[] { "/bin/sh", "-c", "dr_stat -l" });
BufferedReader bReader = new BufferedReader(new InputStreamReader(p1
.getInputStream()));
String firstLine = bReader.readLine();
// 读取第二行的记录(第一行为unix返回的列)
while ((firstLine = bReader.readLine()) != null) {
String[] arrs = firstLine.split("\\s{1,}"); // 以空格为分隔符
// 获取IDX文件名
String idxName = arrs[0];
if(idxName != null && !"".equals(idxName)){
//得到当前侧的文件集合
RealTimeBilling billing=getFileNameListByIdxOfCurr(idxName.trim(),sysSate);
if(null !=billing){
if(getCurrentHostAddress().equals("132.129.24.18") || getCurrentHostAddress().equals("132.129.24.5")){
shList.add(billing);
}else {
bjList.add(billing);
}
}
}
}
// 获得对端侧文件集合
short endSysStat;
if(sysSate==0){
endSysStat=1;
}else {
endSysStat=0;
}
Session session=getEndtoSession();
//获取对端idxName
session.execCommand("dr_stat -l");
BufferedReader bReader2=new BufferedReader(new InputStreamReader(session.getStdout()));
String endFirstLine = bReader2.readLine();
while((endFirstLine=bReader2.readLine())!=null){
String[] endArrs = endFirstLine.split("\\s{1,}"); // 以空格为分隔符
// 获取IDX文件名
String endIdxName = endArrs[0].trim();
RealTimeBilling billing1 =getFileNameListByIdxOfEnd(session, endIdxName, endSysStat);
if(null !=billing1){
if(getCurrentHostAddress().equals("132.129.24.18") || getCurrentHostAddress().equals("132.129.24.5")){
bjList.add(billing1);
}else {
shList.add(billing1);
}
}
}
session.close();
p1.destroy();
request.setAttribute("bjList", bjList);
request.setAttribute("shList", shList);
request.setAttribute("shIsMaster", shIsMaster);
return actionMapping.findForward("realTimeBilling");
}
//设置跳转方法
public ActionForward realTimeForward(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws AppException, Exception {
request.setAttribute("bjList", "");
request.setAttribute("shList", "");
request.setAttribute("shIsMaster", "");
return actionMapping.findForward("realTimeForward");
}
// 获得对端session
public Session getEndtoSession(){
String hAddress = "";
String ip,user,pwd;
Session session=null;
try {
//InetAddress iAddress = InetAddress.getLocalHost();
hAddress =getCurrentHostAddress();
System.out.println("本机的IP地址是:" + hAddress);
String ipConfigFile = useHome + "web" + File.separator + "CB"
+ File.separator + "WEB-INF" + File.separator
+ "ipconfig.properties";
Properties properties = new Properties();
properties.load(new FileInputStream(ipConfigFile));
if (hAddress.equals("132.129.24.18") || hAddress.equals(properties.get("sIp").toString().trim())) {
ip=properties.get("bIp").toString().trim();
user=properties.get("bUser").toString().trim();
pwd=properties.get("bPwd").toString().trim();
} else {
ip=properties.get("sIp").toString().trim();
user=properties.get("sUser").toString().trim();
pwd=properties.get("sPwd").toString().trim();
}
System.out.println("对端服务器的IP="+ip+" 用户名:"+user+" 密码:"+pwd);
con=new Connection(ip);
con.connect();
boolean isAuthenticate=con.authenticateWithPassword(user, pwd);
if(isAuthenticate==false){
System.out.println("连接对端服务器认证失败......");
throw new IOException("Authentication failed....");
}
session=con.openSession();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return session;
}
//获取对端文件集合
public List getEndToFileNameList(){
Session session=getEndtoSession();
//1.0 获得对端侧
return null;
}
//这种方法可以获得主备系统
public String getMachineRole(){
String mRole="";
try {
String drStatStr="dr_stat -d|head -n1|sed 's/^.*=//'|tr [A-Z] [a-z]";
Process p2=Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",drStatStr});
InputStreamReader inReader=new InputStreamReader(p2.getInputStream());
LineNumberReader lReader=new LineNumberReader(inReader);
p2.waitFor();
while((mRole=lReader.readLine()) !=null){
System.out.println("用第二种方法获得主机角色:"+mRole);
}
} catch (IOException e) {
System.out.println("用第二种方法获得主机角色失败");
e.printStackTrace();
} catch (InterruptedException e) {
System.out.println("用第二种方法获得主机角色失败");
e.printStackTrace();
}
//output :master
return mRole;
}
//通过文件idxName查找对应的文件名称
public RealTimeBilling getFileNameListByIdxOfCurr(String idxName,int sysStat) throws Exception{
RealTimeBilling rBilling=null;
for (int i = 0; i < fileDirName.length; i++) {
String filePath="";
if(sysStat==0){
//在主侧目录查找
filePath=idxMasterPath+fileDirName[i]+File.separator+idxName;
}else if (sysStat==1) {
//在备侧目录查找
filePath=idxSlavePath+fileDirName[i]+File.separator+"processing"+File.separator+idxName;
}
File file=new File(filePath);
if(file.exists()){
rBilling=new RealTimeBilling();
System.out.println("打印文件所在目录:"+file.getPath());
//读取idx文件并获取文件名称
LineNumberReader lNumberReader=new LineNumberReader(new FileReader(file));
String linInfo ="";
while((linInfo=lNumberReader.readLine())!=null){
if(linInfo.indexOf("FILE_NAME")>0){
String fileName=lNumberReader.readLine().trim();
rBilling.setFileName(fileName);
if((Calendar.getInstance().getTimeInMillis()-file.lastModified())/1000/60 > outTime){
rBilling.setOutTime(true);
}else {
rBilling.setOutTime(false);
}
System.out.println("打印当前侧文件名称:"+fileName +"是否超过2分钟:"+rBilling.isOutTime());
break;
}
}
}
}
return rBilling;
}
//在对端侧查找对应的文件
public RealTimeBilling getFileNameListByIdxOfEnd(Session session ,String idxName,short sysStat) throws Exception{
RealTimeBilling rBilling=null;
for (int i = 0; i < fileDirName.length; i++) {
String filePath="";
if(sysStat==0){
//在主侧目录查找
filePath=idxMasterPath+fileDirName[i];
}else if (sysStat==1) {
//在备侧目录查找
filePath=idxSlavePath+fileDirName[i]+File.separator+"processing";
}
session.execCommand("find "+filePath+" -name "+idxName);
BufferedReader bReader1=new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()))) ;
String pathStr;
while((pathStr=bReader1.readLine())!=null){
session.execCommand("cat "+pathStr);
BufferedReader bReader2=new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()))) ;
String endFileLine;
while((endFileLine=bReader2.readLine())!=null){
if(endFileLine.indexOf("FILE_NAME")>0){
String fileName=bReader2.readLine().trim();
System.out.println("对端提取的文件名称为:"+fileName);
rBilling=new RealTimeBilling();
rBilling.setFileName(fileName);
SFTPv3FileAttributes sAttributes= new SFTPv3Client(con).lstat(filePath);
Integer mtime= sAttributes.mtime; //获得文件的修改时间 需要确认返回的值是否以毫秒为单位
if(((Calendar.getInstance().getTimeInMillis()-Long.parseLong(mtime.toString()))/1000/60) > outTime){
rBilling.setOutTime(true);
}else {
rBilling.setOutTime(false);
}
System.out.println("对端提取的idxName文件所在路径为:"+filePath +" 该文件的访问时间为:"+mtime +" 是否超时:"+rBilling.isOutTime());
break;
}
}
}
}
return rBilling;
}
public String getCurrentHostAddress(){
String hoString="";
try {
InetAddress iAddress=InetAddress.getLocalHost();
hoString= iAddress.getHostAddress();
} catch (UnknownHostException e) {
System.out.println("获取本机IP地址出错错误......");
e.printStackTrace();
}
return hoString;
}
public static void main(String[] args) {
new RealTimeBillingAction().getEndtoSession();
}
}
利用第三方jar包(ganymed-ssh2-build210.jar)读取远程主机文件的主要步骤为:
1.0 获得session
con=new ch.ethz.ssh2.Connection(ip);
con.connect();
boolean isAuthenticate=con.authenticateWithPassword(user, pwd);
session=con.openSession();
2.0 通过session执行命令并读取返回结果
session.execCommand("find "+filePath+" -name "+idxName);
BufferedReader bReader1=new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()))) ;
2013-09-19 0:19 记 @sanliheludongkou.xichengqu.beijing
- ganymed-ssh2-build210.rar (556.3 KB)
- 下载次数: 16
发表评论
-
Java RMI远程调用
2015-09-15 19:16 957具体代码: 首先定义 ... -
java.lang.IllegalArgumentException: Illegal group reference
2015-02-01 23:34 550public static void main(String ... -
Java对session的监控
2015-01-12 15:37 1434在Java中可以使用 javax.servlet.http. ... -
Java获取真实的IP地址
2014-12-18 14:58 855// 获取真实IP的方法() public String ... -
Java某个账期月的最大天数
2014-12-18 14:50 939/* * 获取某个账期月的最大天数 * param:s ... -
Java String类型赋值问题
2014-10-23 15:34 1149今天用POI在做Ex ... -
获取类所引用的jar包
2014-09-04 11:35 636System.out.println("HWPFD ... -
批量修改文件名称
2014-09-04 11:13 361package mp3; import java.io.Fi ... -
Java获取系统属性
2013-10-24 11:59 1353package com; public class Vers ... -
java.sql.SQLException: 结果集已耗尽
2013-10-22 00:42 152612013年10月21日 星期一 21时43分23秒 说明: ... -
Java时间处理集合
2013-08-27 23:46 868package collections; import ja ... -
ORA-01013: user requested cancel of current operation
2013-08-19 17:01 34582013年8月19日 星期一 16时16分04 ... -
Java 实现一个Null接口
2013-07-02 00:10 622注: 以下代码来自:《Thinking in Java Fo ... -
Java Class.forName()无法加载类
2013-06-26 00:41 16962013年6月26日 星期三 1时01分42秒 packag ...
相关推荐
JAVA实现远程文件读取 JAVA是一种广泛应用于软件开发的编程语言,随着网络技术的发展,JAVA也提供了许多支持远程文件读取的功能,本文将详细介绍JAVA实现远程文件读取的知识点。 1. Socket 编程 在JAVA中,Socket...
7. **用户界面**:使用Java Swing或JavaFX库,开发者构建了用户友好的界面,使用户能够输入远程主机的IP地址和端口号,以及进行连接、断开等操作。 8. **性能优化**:为了提高性能和减少带宽消耗,可能采用了屏幕...
利用SNMP协议,可以从这些交换机中读取MAC地址表,进而获取任意远程主机的MAC地址,即便它们位于不同的网段。 #### Java实现跨网段MAC地址获取 在Java环境中实现跨网段获取远程主机MAC地址,首先需要利用现有的...
在Java编程环境中,有时我们需要在Windows系统中远程访问Linux服务器以获取或操作文件。`JSch`库提供了一个这样的解决方案,它是一个纯Java实现的SSH2库,允许开发者连接到远程计算机并执行命令,传输文件等。本篇将...
JSchAPI是Jsch库提供的接口,开发者可以通过它与远程主机建立安全连接,并执行Shell命令。 1. **安装Jsch库**:在项目中引入Jsch库,通常通过Maven或Gradle添加依赖。Maven用户可以在pom.xml文件中添加以下依赖: `...
在Java编程中,读取服务器硬件信息是一项重要的任务,尤其对于跨平台的应用程序来说,能够兼容Windows、Linux和Mac OS等不同操作系统是必不可少的。本文将深入探讨如何使用Java来获取这些不同系统的硬件信息。 首先...
同时,可能还包含了一个示例的Java源码文件,展示如何整合这些步骤以完成远程登录和执行命令的功能。 总的来说,Java通过JSch库远程登录Linux服务器并执行命令,是Java与Linux系统交互的一种常用方式,尤其适用于...
总结来说,Java实现文本文件MD5加密并FTP上传至远程主机涉及以下几个关键步骤: 1. 使用`MessageDigest`计算文件的MD5哈希。 2. 使用Apache Commons Net的FTPClient进行文件上传。 3. 在前端页面收集用户输入,校验...
在Java中,可以使用序列化(Serialization)技术将命令对象转化为字节流,通过Socket发送到远程主机。服务端接收到字节流后反序列化回原对象,然后执行对应的本地功能。这个过程可能涉及到线程安全问题,因为服务端...
Java远程连接技术主要涉及到网络通信和安全性,其中SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络环境中提供加密的通信通道。在这个场景中,`ganymed-ssh2-build210.jar` 是一个Java库,它允许Java...
3.远程教育:使用 Java Socket 编程可以实现远程教育中的实时通信和数据传输。 四、Java Socket 编程的优点 Java Socket 编程有许多优点,例如: 1. 可靠性高:Java Socket 编程基于 TCP/IP 协议,提供了可靠的...
2. **文件传输(SCP/SFTP)**:允许用户上传或下载文件到远程主机。 ### 二、环境搭建与依赖引入 #### 1. 下载 Ganymed SSH2 库 首先,我们需要从官方提供的地址下载所需的jar包:...
文件上传涉及到选择远程目录、读取本地文件并将其写入FTP服务器。以下是一个简单的文件上传示例: ```java File localFile = new File("/path/to/local/file.txt"); String remoteFilePath = "/path/to/remote/file...
在Java编程领域,实现"Java网络屏幕监控(把客户端屏幕截图实时发送到主机端)"是一项技术挑战,涉及到网络通信、图像处理以及文件传输等多个知识点。在这个项目中,`WnetWScreenRecorder.java`作为客户端负责捕获并...
在实际情况中,这个文件可能包含一个简单的Java程序,展示了如何使用JSch或其他工具来执行远程Linux命令。如果能查看到具体的代码内容,我们将能够更深入地了解其实现细节。 总结,通过Java执行远程Linux服务器命令...
利用这些方法,我们可以很方便地对远程服务器上的文件进行操作。 为了安全起见,实际部署时应避免将"StrictHostKeyChecking"设置为"no",这样会导致系统接受任何主机的密钥,增加了被中间人攻击的风险。更好的做法...
- `java.net.ConnectException`: 当无法连接到远程主机时抛出此异常。 - `java.net.URL`: 表示统一资源定位符(Uniform Resource Locator)的对象。 - `java.lang.Runnable`: 一个可以被线程执行的简单任务的接口。 ...
它允许用户从远程主机下载文件或向远程主机上传文件。在Java中,我们可以使用多种库来实现FTP功能。 2. **Java FTP库**:在描述中提到了`edtftpj.jar`,这是一个Java FTP客户端库,提供了一种简单的方式来处理FTP...
4. **建立连接**:调用`session.connect()`方法建立与远程主机的连接。 5. **打开SFTP通道**:使用`session`打开一个SFTP通道,即`ChannelSftp`对象。 ```java ChannelSftp sftpChannel = (ChannelSftp) session....