java調用com介面jar包,java調用外部jar包

本文目錄一覽:

怎麼在java項目中調自定義的jar包中的類?

在java項目中調用自定義的jar包需要兩個步驟。第一步,將需要使用的jar包導入到項目中,如果在導入的jar包前看到一個奶瓶裝狀的圖標,那麼代表可以正常使用該jar包了,第二步,在類中使用到自定義的jar包中的內容時,需要導入相關的包信息。一般在開發時,我們自定義的jar包大多數為工具包,即直接使用對象.方法的形式來使用jar包中的內容。

java導入jar包之後怎麼調用

首先你得知道你的jar包里有哪些類,這些類在哪個包下。查看方式:jar包可以用rar壓縮包的方式打開看的。比如你有AAA.jar,該jar裡面有com文件夾,com文件夾裡面有一個test文件夾,test文件夾裡面有Test.java這個類,那麼你在使用時可以import com.test.Test也可以把Test用*代替。

java怎麼調用一個jar包里的另一個jar包的class,新手求指教,謝謝

用反射啊例

A r = new A();

Class temp = r.getClass();

System.out.println(“反射類中所有公有的屬性”);

Field[] fb =temp.getFields();

……

求E語言通過java支持庫調用jar包時參數傳遞教程

Java載入jar文件並調用jar文件當中有參數和返回值的方法

在工作當中經常遇到反編譯後的jar文件,並要傳入參數了解其中的某些方法的輸出,想到Java裡面的反射可以實現載入jar文件並調用其中的方法來達到自己的目的。就寫了個Demo代碼。

以下的類可以編譯生成hello.jar文件。

1 package org.lele.fatpanda;

2    3 public class Util

4 {

5     public static String myName;

6     /*  7      * 無參數,無返回值的方法。

8      */   9     public static void getVersion()  

10     {  

11         System.out.println(“java version: ” + System.getProperty(“java.version”) );  

12     }  

13     /* 14      *有參數,無返回值的方法。

15      */  16     public static void setTmpName(String name)  

17     {  

18         myName = name;  

19         System.out.println(“Set Tmp Name Succeed and the name is : ” + myName);  

20     }  

21     /* 22      * 單個參數,有返回值的方法。

23      */  24     public static String getName(String prefix)  

25     {  

26         return prefix + “lele”;  

27     }  

28     /* 29      * 多個參數,有返回值的方法。

30      */  31     public static String test(String i1, int i2)  

32     {  

33         return i1 + i2;      

34     }  

35       36 }  

37 /* 38  * 一個生成jar文件的類文件,要使用public的訪問許可權,如果在方便進行反射調用,則要將方法聲明為static。

39  */  

下面的就是實現動態載入並調用的主要代碼。

1 package com.xiyoulele.wh;

2    3 import java.io.File;

4 import java.lang.reflect.Method;

5 import java.net.URL;

6 import java.net.URLClassLoader;

7    8 public class Main

9 {  

10     public static void main(String[] args)  

11     {  

12         URL[] urls = new URL[] {};  

13         MyClassLoader classLoader = new MyClassLoader(urls, null);  //自定義ClassLoader來載入jar文件  14           15         try   16         {  

17             classLoader.addJar(new File(“c:\\hello.jar”).toURI().toURL());  //載入特定路徑的jar文件  18             Class? clazz = classLoader.loadClass(“org.lele.fatpanda.Util”); //動態載入jar文件當中的特定類的class文件    

19               20             //傳入一個參數一個返回值  21           22             Class?[] typeA = new Class[1];  //傳入要調用的方法的參數類型  23             typeA[0] = String.class;  

24               25             Object[] objsA = new Object[1];  //傳入要調用的方法的具體參數  26             objsA[0] = new String(“xiyou”);  

27               28             Method method =  clazz.getMethod(“getName”, typeA);  //獲取要被調用的特定方法  getName(String xx)  29               30             String result = method.invoke(clazz, objsA).toString(); //調用方法,獲取方法的返回值。  31               32             System.out.println(result);  //輸出方法      

33               34             //傳入2個參數一個人返回值  35               36             Class?[] typesB = new Class[2];  

37             typesB[0] = String.class;  

38             typesB[1] = Integer.TYPE;  

39               40             Object[] ObjsB = new Object[2];  

41             ObjsB[0] = new String(“ZT”);  

42             ObjsB[1] = new Integer(520);  

43               44             Method newMethod = clazz.getMethod(“test”, typesB);  

45             String res = newMethod.invoke(clazz.newInstance(), ObjsB).toString();  

46               47             System.out.println(res);  

48               49             //有傳入的參數,沒有返回值  50             Class?[] typesC = new Class[1];  

51             typesC[0] = String.class;  

52               53             Object[] objsC = new Object[1];  

54             objsC[0] = new String(“xiyoulele”);  

55               56             Method methodC = clazz.getMethod(“setTmpName”, typesC);  

57             methodC.invoke(clazz.newInstance(), objsC);  

58               59             //無參數,無返回值  60             Method methodD = clazz.getDeclaredMethod(“getVersion”);  

61             methodD.invoke(clazz.newInstance());                

62               63             classLoader.close();  //關閉類的載入器  64               65         } catch (Exception e)  

66         {            

67             e.printStackTrace();  

68         }  

69     }    

70     //繼承URLClassLoader來實現對jar文件的載入  71     static class MyClassLoader extends URLClassLoader  

72     {  

73         public MyClassLoader(URL[] urls)  

74         {  

75             super(urls);  

76         }  

77         public MyClassLoader(URL[] urls, ClassLoader parent)  

78         {  

79             super(urls, parent);  

80         }  

81         public void addJar(URL url)  

82         {  

83             this.addURL(url);  

84         }  

85     }  

86 }  

87 /* 88  * 需求:載入jar文件,動態調用裡面的方法,該方法帶有參數和返回值。

89  */

程序運行的結果:

jar包的使用

導入到工程即可使用了

1. 在程序目錄下,創建一個文件夾,名稱隨便叫,我們這裡叫Lib。

2.將第三方jar包複製到該目錄下

3.右鍵工程

4.Build path

5.java build path,選擇libraries

6.在右邊的按鈕中點擊「Add JARs」

7.選擇Lib目錄下的jar包,導入就可以了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311169.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論