java遠程代碼包含 java遠程開發(fā)工作

java遠程讀寫文件詳解

import java.io.BufferedReader;

站在用戶的角度思考問題,與客戶深入溝通,找到南和網(wǎng)站設(shè)計與南和網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋南和地區(qū)。

import java.io.File;

import java.io.FileReader;

/**

* @author lmq

*

*/

public class RemoteFile {

public static void main(String[] args) throws Exception {

File remoteFile = new File("http://192.168.7.146/test/1.txt");// 192.168.7.146是對方機器IP,test是對方那個共享文件夾名字,如果沒有共享是訪問不到的

//遠程文件其實主要是地址,地址弄對了就和本地文件沒什么區(qū)別 ,windows里面//或者\\\\開頭就表示這個文件是網(wǎng)絡(luò)路徑了其實這個地址就像我們再windows里面,點擊開始

//然后點擊運行,然后輸入 \\192.168.7.146/test/1.txt訪問遠程文件一樣的

BufferedReader br = new BufferedReader(new FileReader(remoteFile));

String str;

while ((str = br.readLine()) != null) {

System.out.println(str);

}

br.close();

}

}

希望能幫到你。

如何實現(xiàn)遠程調(diào)試java代碼

1. 遠程debug調(diào)試java代碼

1.1 主動連接調(diào)試

首先需要遠程服務(wù)配置啟動腳本:

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

如果是啟動jar包,指令:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar

這里-Xdebug是通知JVM工作在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)來運行調(diào)試環(huán)境。

transport是監(jiān)聽Socket端口連接方式(也可以dt_shmem共享內(nèi)存方式,但限于windows機器,并且服務(wù)提供端和調(diào)試端只能位于同一臺機)。

server=y表示當前是調(diào)試服務(wù)端,=n表示當前是調(diào)試客戶端。suspend=n表示啟動時不中斷(如果啟動時中斷,一般用于調(diào)試啟動不了的問題)。

address=8000表示本地監(jiān)聽8000端口。

遠程服務(wù)(tomcat/jboss)啟動成功后,本地Eclipse對需要調(diào)試的地方打上斷點,

然后項目右鍵啟動遠程調(diào)試:Debug as-Debug Configurations-Remote Java Application。

Host為遠程主機IP,Port為遠程監(jiān)聽調(diào)試端口,Connection Type為:Standard(Socket Attach),

點擊Debug,然后打斷點,遠程服務(wù)運行到斷點處本地就會中斷,然后進行調(diào)試。

1.2 被動連接調(diào)試

首先需要Eclipse配置監(jiān)聽,如主動連接調(diào)試的Eclipse配置圖片,Connection Type選擇:

Standard(Socket Listen),配置本地監(jiān)聽端口,比如默認8000。點擊Debug開始等待遠程連接調(diào)試。

然后配置遠程服務(wù)啟動腳本:

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y"

如果是調(diào)試jar包,指令:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y -jar remoting-debug.jar

參數(shù)含義和主動連接調(diào)試一樣,只是這里suspend=y表示啟動時就中斷,需要連接本地IDE調(diào)試啟動。

address=ip:port,ip需要修改為本地的對外IP。

這樣遠程項目啟動時就連接到本地,方便調(diào)試項目啟動不了的問題。

如何使用 Idea 遠程調(diào)試 Java 代碼

項目的部署方式有在本地搭建服務(wù)器進行啟動或是debug,或是將項目在遠程服務(wù)器上面部署。一般如果在本地搭建服務(wù)器的時候,可以直接選擇啟動或是直接debug,但是如果項目部署在遠程的服務(wù)器上面的時候, 我們該如何進行調(diào)試呢?而一些大公司的項目是不需要在本地搭建應(yīng)用服務(wù)器的,為了環(huán)境統(tǒng)一,應(yīng)用服務(wù)器都是在遠程服務(wù)器上面,這時我們就需要用遠程debug,通過遠程服務(wù)器的ip地址和遠程開啟的debug端口進行調(diào)試:

1.首先把遠程服務(wù)器上面需要調(diào)試的代碼放在IDE里面

2.在菜單欄選擇run -edit Configuration,點擊+號,選擇remote,然后在配置項里面輸入遠程需要調(diào)試機器的IP地址和所對應(yīng)的端口號,最后在最上面輸入該次一遠程調(diào)試的項目名字,方便自己區(qū)分不同的項目

3.將配置項中的-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5080添加到JAVA_OPTS的屬性中,重啟遠程tomcat服務(wù)器

3.再次選擇菜單條run按鈕,找到debug+“自己設(shè)置的項目名字”,點擊然后就可以進行遠程debug調(diào)試

4.在本地項目中設(shè)置斷點,然后訪問遠程機器上面的IP和端口,然后就可以在本地debug調(diào)試了

java 遠程調(diào)用,具體實現(xiàn)

1、使用java代碼通過ssh登陸linux并執(zhí)行命令,正常情況下sshd服務(wù)都會有,知道用戶密碼就可以使用這種方式了。

2、要在遠程linux服務(wù)器上執(zhí)行命令,可以在linux服務(wù)器上啟動一個服務(wù)做執(zhí)行腳本的代理,不斷接受來自你這個項目發(fā)來的腳本信息,然后執(zhí)行,再把結(jié)果返回給你項目中去。

第一種:以消息隊列的方式發(fā)送這些腳本信息,linux代理不斷接受,并返回結(jié)果。項目同時要不斷接受結(jié)果。

第二種:項目中產(chǎn)生的腳本,直接記錄到數(shù)據(jù)庫,linux上的代理訪問這個數(shù)據(jù)庫,獲取腳本信息,并將執(zhí)行結(jié)果寫入數(shù)據(jù)庫。項目中輪詢執(zhí)行結(jié)果。

上面我說的消息隊列可以采用activemq,或者rabbitmq這些。

命令執(zhí)行,java中直接Runtime.getRuntime().exec(command);就行了。

java遠程調(diào)用接口的原理和范例,謝謝

Java 遠程處理

Java遠程方法調(diào)用(RMI)提供了Java程序語言的遠程通訊功能,這種特性使客戶機上運行的程序可以調(diào)用遠程服務(wù)器上的對象,使Java編程人員能夠在網(wǎng)絡(luò)環(huán)境中分布操作。

創(chuàng)建一個簡單的Java分布式遠程方法調(diào)用程序可以按以下幾個步驟操作,

一、定義遠程接口:

在 Java 中,遠程對象是實現(xiàn)遠程接口的類的實例, 遠程接口聲明每個要遠程調(diào)用的方法。在需要創(chuàng)建一個遠程對象的時候,我們通過傳遞一個接口來隱藏基層的實施細節(jié),客戶通過接口句柄發(fā)送消息即可。

遠程接口具有如下特點:

1) 遠程接口必須為public屬性。如果不這樣,除非客戶端與遠程接口在同一個包內(nèi),否則 當試圖裝入實現(xiàn)該遠程接口的遠程對象時,調(diào)用會得到錯誤結(jié)果。

2) 遠程接口必須擴展接口java.rmi.Remote。

3) 除與應(yīng)用程序本身特定的例外之外,遠程接口中的每個方法都必須在自己的throws從句中 聲明java.rmi.RemoteException。(或 RemoteException 的父類)。

4) 作為參數(shù)或返回值傳遞的一個遠程對象(不管是直接,還是本地對象中嵌入)必須聲明為遠 程接口,而不應(yīng)聲明為實施類。

下面是遠程接口的定義

[java] view plaincopy

package test;

import java.rmi.Remote;

import java.rmi.RemoteException;

import java.math.BigInteger;

public interface Fib extends Remote {

public int getFib(int n) throws RemoteException;

// public BigInteger getFib(BigInteger n) throws RemoteException;

}

二、實現(xiàn)遠程接口:

遠程對象實現(xiàn)類必須擴展遠程對象java.rmi.UnicastRemoteObject類,并實現(xiàn)所定義的遠程接口。遠程對象的實現(xiàn)類中包含實現(xiàn)每個遠程接口所指定的遠程方法的代碼。這個類也可以含有附加的方法,但客戶只能使用遠程接口中的方法。因為客戶是指向接口的一個句柄,而不是它的哪個類。必須為遠程對象定義構(gòu)造函數(shù),即使只準備定義一個默認構(gòu)造函數(shù),用它調(diào)用基礎(chǔ)類構(gòu)造函數(shù)。因為基礎(chǔ)類構(gòu)造函數(shù)可能會拋出 java.rmi.RemoteException,所以即使別無它用必須拋出java.rmi.RemoteException例外。

以下是遠程對象實現(xiàn)類的聲明:

[java] view plaincopy

package test;

import java.math.BigInteger;

import java.rmi.*;

import java.rmi.server.UnicastRemoteObject;

public class FibImp extends UnicastRemoteObject implements Fib {

public FibImp() throws RemoteException {

super();

}

public int getFib(int n) throws RemoteException {

return n+2;

}

}

三、編寫服務(wù)器類:

包含 main 方法的類可以是實現(xiàn)類自身,也可以完全是另一個類。下面通過RmiSampleServer 來創(chuàng)建一個遠程對象的實例,并通過java.rmi.registry.LocateRegistry類的createRegistry 方法從指定端口號啟動注冊服務(wù)程序,也可以通過執(zhí)行 rmiregistry 命令啟動注冊服務(wù)程序,注冊服務(wù)程序的缺省運行端口為 1099。必須將遠程對象名字綁定到對遠程對象的引用上: Naming.rebind("http://localhost:8808/SAMPLE-SERVER" , Server);

以下是服務(wù)器類的聲明:

[java] view plaincopy

package test;

import java.net.MalformedURLException;

import java.rmi.Naming;

import java.rmi.RemoteException;

import java.rmi.registry.LocateRegistry;

public class FibonacciServer {

/**

* @param args

*/

public static void main(String[] args) {

try {

LocateRegistry.createRegistry(8804);

FibImp f = new FibImp();

// 注冊到 registry 中

Naming.rebind("http://localhost:8804/SAMPLE-SERVER", f);

System.out.println("fib server ready");

} catch (RemoteException re) {

System.out.println("Exception in FibonacciImpl.main: " + re);

} catch (MalformedURLException e) {

System.out.println("MalformedURLException " + e);

}

}

}

四、編寫使用遠程服務(wù)的客戶機類:

客戶機類的主要功能有兩個,一是通過Naming.lookup方法來構(gòu)造注冊服務(wù)程序 stub 程序?qū)嵗?,二是調(diào)用服務(wù)器遠程對象上的遠程方法。

以下是客戶端類的聲明:

[java] view plaincopy

package testClient;

import test.Fib;

import java.math.BigInteger;

import java.net.MalformedURLException;

import java.rmi.Naming;

import java.rmi.NotBoundException;

import java.rmi.RemoteException;

public class FibClient {

/**

* @param args

*/

public static void main(String[] args) {

String url = "http://localhost:8804/SAMPLE-SERVER";

try {

Fib calc = (Fib) Naming.lookup(url);

for (int i = 0; i 10; ++i) {

int f = calc.getFib(i);

System.out.println(f);

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (RemoteException e) {

e.printStackTrace();

} catch (NotBoundException e) {

e.printStackTrace();

}

}

}

網(wǎng)站名稱:java遠程代碼包含 java遠程開發(fā)工作
當前URL:http://muchs.cn/article16/hphddg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信小程序網(wǎng)站設(shè)計公司、用戶體驗網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)