最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java如何遠(yuǎn)程加載class文件

 更新時(shí)間:2024年01月15日 09:32:20   作者:奈何、草  
這篇文章主要介紹了java如何遠(yuǎn)程加載class文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1.在win上創(chuàng)建java文件并編譯

在這里插入圖片描述

2.上傳到遠(yuǎn)程服務(wù)器

在這里插入圖片描述

3.編寫java代碼

準(zhǔn)備:

引入jar包   ganymed-ssh2-262.jar

1.加載外部class要定義自己的類加載器

2.使用內(nèi)存流

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SFTPInputStream;
import ch.ethz.ssh2.SFTPv3Client;


public class Fs{
	public static void main(String[] args) throws Exception {
		OwnClassLoader ocl = new OwnClassLoader();
		String ip,user,password;
		ip = "120.34.168.80";//自己的遠(yuǎn)程ip
		user = "root";//username
		password = "123456";//password
		ocl.login(ip, user, password);
		Object obj = ocl.loadeOthClass("/opt/4/tt.class");//class文件路徑
				
		System.out.println(obj);
		Class c = obj.getClass();
		Field f = c.getDeclaredField("age");
		f.setAccessible(true);
		System.out.println("age:"+f.get(obj));
	}
}
//自定義類加載器
class OwnClassLoader extends ClassLoader{
	private Connection conn = null;
	//初始化鏈接
	public  Connection login(String ip,String user,String password){
		Connection conn = null;
		try {
			//也可以new Connection(ip, port)創(chuàng)建對(duì)象,默認(rèn)22
			conn = new Connection(ip);
			//連接遠(yuǎn)程服務(wù)
			conn.connect();
			//使用用戶名和密碼登錄
			conn.authenticateWithPassword(user, password);
			this.conn  = conn;
	        return conn;
		} catch (IOException e) {   
			e.printStackTrace();
	  }
	  return null;
	}
	//返回遠(yuǎn)程實(shí)例
	public Object loadeOthClass(String url) throws Exception{
		if(null==conn)
			throw new Exception("請(qǐng)初始化鏈接");
		SFTPv3Client sc = new SFTPv3Client(conn);//創(chuàng)建ssh客戶端連接
		InputStream is = new SFTPInputStream(sc.openFileRO(url));//創(chuàng)建輸入流
		byte[] b = this.readClassFile(is);
		Class<?> c = super.defineClass(b, 0, b.length);//定義class
		return c.newInstance();//創(chuàng)建實(shí)例
	}
	//讀取遠(yuǎn)程class文件
	private  byte[] readClassFile(InputStream is){
		byte[] b = new byte[1024];
		int len;
		ByteArrayOutputStream bos = null;
		try {
			bos = new ByteArrayOutputStream();//內(nèi)存流輸出
			while((len=is.read(b))!=-1){
				bos.write(b, 0, len);
			}
			b = bos.toByteArray();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				if(is!=null)
					is.close();
				if(bos!=null)
					bos.close();
			} catch (Exception e2) {
				// TODO: handle exception
			}		
		}	
		return b;	
	}	
}

輸出結(jié)果:

在這里插入圖片描述

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Cloud Gateway組件的三種使用方式實(shí)例詳解

    Spring Cloud Gateway組件的三種使用方式實(shí)例詳解

    Spring Cloud Gateway是 Spring 官方基于 Spring5.0 、 SpringBoot2.0 和 Project Reactor 等技術(shù)開發(fā)的網(wǎng)關(guān)旨在為微服務(wù)框架提供一種簡(jiǎn)單而有效的統(tǒng)一的API 路由管理方式,統(tǒng)一訪問(wèn)接口,這篇文章主要介紹了Spring Cloud Gateway組件的三種使用方式,需要的朋友可以參考下
    2024-01-01
  • 一文搞懂Java中的反射機(jī)制

    一文搞懂Java中的反射機(jī)制

    這篇文章主要介紹了Java中反射機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Java數(shù)據(jù)庫(kù)連接_jdbc-odbc橋連接方式(詳解)

    Java數(shù)據(jù)庫(kù)連接_jdbc-odbc橋連接方式(詳解)

    下面小編就為大家?guī)?lái)一篇Java數(shù)據(jù)庫(kù)連接_jdbc-odbc橋連接方式(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java接口和抽象類實(shí)例分析

    Java接口和抽象類實(shí)例分析

    這篇文章主要介紹了Java接口和抽象類,實(shí)例分析了java接口與抽象類的概念與相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • java面試常見(jiàn)模式問(wèn)題---單例模式

    java面試常見(jiàn)模式問(wèn)題---單例模式

    單例模式(Singleton Pattern)是 Java 中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式
    2021-06-06
  • Spring?MVC和springboot靜態(tài)資源處理問(wèn)題

    Spring?MVC和springboot靜態(tài)資源處理問(wèn)題

    這篇文章主要介紹了Spring?MVC和springboot靜態(tài)資源處理問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java try catch finally異常處理組合詳解

    Java try catch finally異常處理組合詳解

    這篇文章主要介紹了Java try catch finally異常處理組合詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 淺談Java數(shù)組的一些使用方法及堆棧存儲(chǔ)

    淺談Java數(shù)組的一些使用方法及堆棧存儲(chǔ)

    下面小編就為大家?guī)?lái)一篇淺談Java數(shù)組的一些使用方法及堆棧存儲(chǔ)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • java操作Redis緩存設(shè)置過(guò)期時(shí)間的方法

    java操作Redis緩存設(shè)置過(guò)期時(shí)間的方法

    這篇文章主要介紹了java操作Redis緩存設(shè)置過(guò)期時(shí)間的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java多態(tài)實(shí)現(xiàn)電子寵物系統(tǒng)

    java多態(tài)實(shí)現(xiàn)電子寵物系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java多態(tài)實(shí)現(xiàn)電子寵物系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評(píng)論

百色市| 威信县| 河曲县| 宣恩县| 杭锦旗| 淮安市| 新昌县| 连平县| 台中县| 富阳市| 泉州市| 藁城市| 西安市| 西贡区| 龙陵县| 女性| 桓仁| 江西省| 林周县| 洛川县| 普洱| 宜阳县| 密云县| 石狮市| 富源县| 南华县| 五河县| 肃宁县| 北海市| 定日县| 沅陵县| 永川市| 呼和浩特市| 天等县| 阿拉善右旗| 建湖县| 上高县| 桦南县| 英德市| 科技| 沾益县|