精华内容
下载资源
问答
  • Java调用jar包中的方法

    2021-11-29 15:42:33
    Util.java @Component public class Util { public static String jarPath; public static String classUrl; public static String credentialUrl; public static String szUserName; public static String ...

    Util.java

    @Component
    public class Util {
    	public static String jarPath;
    	public static String classUrl;
    	public static String credentialUrl;
    	public static String szUserName;
    	public static String szPassWord;
    
    	@Value("${encryption.jarPath}")
    	public void setJarPath(String jarPath) {
    		EncryptionUtil.jarPath = jarPath;
    	}
    
    	@Value("${encryption.classUrl}")
    	public void setClassUrl(String classUrl) {
    		EncryptionUtil.classUrl = classUrl;
    	}
    	
    	@Value("${encryption.szUserName}")
    	public void setSzUserName(String szUserName) {
    		EncryptionUtil.szUserName = szUserName;
    	}
    
    	@Value("${encryption.szPassWord}")
    	public void setSzPassWord(String szPassWord) {
    		EncryptionUtil.szPassWord = szPassWord;
    	}
    
    	/**
    	 * 读取jar包
    	 * @param jarPath jar包存放的路径,可以是部署服务所在的linux上
    	 */
    	public static void loadJar(String jarPath) {
    		File jarFile = new File(jarPath);
    		if (!jarFile.exists()) {
    			throw new RuntimeException("找不到jar包");
    		}
    		// 从URLClassLoader类中获取类所在文件夹的方法,jar也可以认为是一个文件夹
    		Method method = null;
    		try {
    			method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
    		} catch (NoSuchMethodException | SecurityException e1) {
    			e1.printStackTrace();
    		}
    		// 获取方法的访问权限以便写回
    		boolean accessible = method.isAccessible();
    		try {
    			method.setAccessible(true);
    			// 获取系统类加载器
    			URLClassLoader classLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
    			URL url = jarFile.toURI().toURL();
    			method.invoke(classLoader, url);
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			method.setAccessible(accessible);
    		}
    	}
    	
    	/**
    	 *
    	 * @param data
    	 * @throws Exception
    	 */
    	public static String test(String data){
    		String szResult = null;
    		try {
    			byte[] dataByte = data.getBytes("UTF-8");
    			loadJar(jarPath);
    			Class<?> clazz = Class.forName(classUrl);
    			Object instance = clazz.newInstance();
    		Object logInResult = clazz.getDeclaredMethod("LogIn", String.class, String.class).invoke(instance,szUserName,szPassWord);
    		Object logInIErrCodeObj = clazz.getField("iErrCode").get(logInResult);
    		int logInCode = (Integer)logInIErrCodeObj;
    		if (logInCode != 0) {
    			Object logInIErrMsgObj = clazz.getField("szErrMsg").get(logInResult);
    			String logInIErrMsg = (String)logInIErrMsgObj;
    			throw new RuntimeException(logInIErrMsg);
    		}
    		}  catch (Exception e) {
    			e.printStackTrace();
    		}
    		return szResult;
    	}
    }  
    

    application.yml

    encryption:
      jarPath: C:\\a\\WAsecurity.jar
      classUrl: Wasecurity.IscJcrypt
      szUserName: test
      szPassWord: test
    
    展开全文
  • java中jar包的使用方法

    千次阅读 2021-02-28 15:04:03
    java中jar包的使用方法发布时间:2020-06-23 11:08:05来源:亿速云阅读:162作者:Leah这篇文章将为大家详细讲解有关java中jar包的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后...

    java中jar包的使用方法

    发布时间:2020-06-23 11:08:05

    来源:亿速云

    阅读:162

    作者:Leah

    这篇文章将为大家详细讲解有关java中jar包的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    为什么用jar包、什么是jar包

    .java文件编译好后生成.class文件,如果直接写在其他程序或提供给别人使用会很不方便,因此将一些.class文件打包成一个jar包,jar包中还可以包含一些资源文件(如txt文件、html文件、css文件等等),以及一个清单文件META-INF/MANIFEST.MF。

    .class文件是平台无关的,因此jar包是跨平台的。如果是可执行jar包,清单文件会包含Main-Class属性,表明Main方法入口。

    如何打jar包

    有如下两个类,Welcome类和Teacher类package com.imooc.jardemo1;

    import com.imooc.jardemo1.impl.Teacher;;

    public class Welcome {

    public int num;

    public static void main(String[] args) {

    Teacher.greeting();

    Welcome welcome=new Welcome();

    Teacher lee=new Teacher();

    welcome.addTeacher(lee, 1, "gil");

    welcome.getTeaInfor(lee);

    }

    public void addTeacher(Teacher teacher,int id,String name) {

    teacher.id=id;

    teacher.name=name;

    }

    public void getTeaInfor(Teacher teacher) {

    String str="ID:"+teacher.id+" Name:"+teacher.name;

    System.out.println(str);

    }

    }package com.imooc.jardemo1.impl;

    public class Teacher {

    public String name;

    public int id;

    public static void greeting() {

    System.out.println("Welcome!");

    }

    }

    右键项目-Export

    af08cebb64eb4e130ae13378008fb8ca.png

    选择Runnable Jar file

    dd967077e5346d9c90fa0c92e5923540.png

    下图第一个框选择入口文件,第二个框为导出的Jar包的位置及名称,点Finish

    ed94e415814a4df66b868aa1dd3cf75b.png

    打包完成。

    如何使用jar包

    在工程目录下新建文件夹lib:New->Folder,文件名lib,将需要使用的jar包复制进去

    02489f7b78dee54d8f57468b7e576ef6.png

    将jar包添加到构建路径中:在需要使用的jar包上,右键->Build path ->Add to build Path

    17f2944f5e5c5e23d2e90015c9b001c9.png

    编写测试类JarTest,即可使用Jar包中的类、方法等(会自动import)package com.imooc.jartest;

    import com.imooc.jardemo1.Welcome;

    import com.imooc.jardemo1.impl.Teacher;

    public class JarTest {

    public static void main(String[] args) {

    Welcome.main(args);

    Welcome welcome=new Welcome();

    Teacher teacher=new Teacher();

    welcome.addTeacher(teacher, 2, "pelle");

    welcome.getTeaInfor(teacher);

    }

    }

    关于java中jar包的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    展开全文
  • public class Runner implements Runnable{ public void run(String name) { System.out.println(name + "the writer is running...");...//执行jar包里方法 method.invoke(clazz.newInstance(),"Tom"); } }
    package com.example;
    public class Runner implements Runnable{
    public void run(String name) {
      System.out.println(name + "the writer is running...");
    }
    

    需要将以上类打包成JAR,通过URLClassLoader读取

    import org.junit.Test;
    import java.lang.reflect.Method;
    import java.net.URL;
    import java.net.URLClassLoader;
     
    public class Main {
        @Test
        public void test() throws Exception {
              /*动态加载指定类*/  
            //File file=new File("D:/test");//类路径(包文件上一层)  
            //URL url=file.toURI().toURL();  
            URL url = new URL("file:E:/JavaJars/OtherJar/runner.jar");
            URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url}, Thread.currentThread().getContextClassLoader());
            Class<?> clazz = urlClassLoader.loadClass("com.example.Runner");//完整路径:包名+类名
            //Runnable runnable = (Runnable) clazz.newInstance();
            //runnable.run();
            Method method = clazz.getMethod("run",String.class);//执行jar包里方法
            method.invoke(clazz.newInstance(),"Tom");
        }
    }
    
    展开全文
  • java中动态调用jar

    2021-03-07 08:16:58
    步骤一、拷贝下面这个类到你的工程,我写...import java.net.URL;import java.net.URLClassLoader;import java.net.JarURLConnection;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import ja...

    步骤一、拷贝下面这个类到你的工程,我写的,可以进一步优化

    package dmis;

    import java.net.URL;

    import java.net.URLClassLoader;

    import java.net.JarURLConnection;

    import java.lang.reflect.Method;

    import java.lang.reflect.Modifier;

    import java.lang.reflect.InvocationTargetException;

    import java.util.jar.Attributes;

    import java.io.IOException;

    import javax.swing.*;

    /**

    * A class loader for loading jar files, both local and remote.

    */

    class JarClassLoader extends URLClassLoader {

    private URL url;

    /**

    * Creates a new JarClassLoader for the specified url.

    *

    * @param url the url of the jar file

    */

    public JarClassLoader(URL url) {

    super(new URL[] { url });

    this.url = url;

    }

    /**

    * Returns the name of the jar file main class, or null if

    * no "Main-Class" manifest attributes was defined.

    */

    public String getMainClassName() throws IOException {

    URL u = new URL("jar", "", url + "!/");

    JarURLConnection uc = (JarURLConnection)u.openConnection();

    Attributes attr = uc.getMainAttributes();

    return attr != null ? attr.getValue(Attributes.Name.MAIN_CLASS) : null;

    }

    /**

    * Invokes the application in this jar file given the name of the

    * main class and an array of arguments. The class must define a

    * static method "main" which takes an array of String arguemtns

    * and is of return type "void".

    *

    * @param name the name of the main class

    * @param args the arguments for the application

    * @exception ClassNotFoundException if the specified class could not

    *            be found

    * @exception NoSuchMethodException if the specified class does not

    *            contain a "main" method

    * @exception InvocationTargetException if the application raised an

    *            exception

    */

    public void invokeClass(String name, String[] args)

    throws ClassNotFoundException,

    NoSuchMethodException,

    InvocationTargetException

    {

    Class c = loadClass(name);

    Method m = c.getMethod("main", new Class[] { args.getClass() });

    m.setAccessible(true);

    int mods = m.getModifiers();

    if (m.getReturnType() != void.class || !Modifier.isStatic(mods) ||

    !Modifier.isPublic(mods)) {

    throw new NoSuchMethodException("main");

    }

    try {

    m.invoke(null, new Object[] { args });

    } catch (IllegalAccessException e) {

    // This should not happen, as we have disabled access checks

    }

    }

    public void invokeClass(String name)

    throws ClassNotFoundException,

    NoSuchMethodException,

    InvocationTargetException

    {

    Class c=loadClass(name);

    Method m=c.getMethod("main",null);

    m.setAccessible(true);

    try{

    m.invoke(null,null);

    }catch(IllegalAccessException e){

    }

    }

    }

    二、子模块(jar文件)写接口    即在子模块的main class中多一个方法:public static main(){//这里启动整个子模块}    然后把该子模块打包成jar文件(注意manifest文件中必须声明该jar 文件的main class)三、动态调用子模块    JarClassLoader cl=new JarClassLoader(url);//url指向你的子模块即jar文件的路径    String name=cl.getMainClassName();    cl.invokeClass(name);//OK!

    展开全文
  • 浅谈java 执行jar包中的main方法通过 OneJar 或 Maven 打包后 jar 文件,用命令:java -jar ****.jar执行后总是运行指定的主方法,如果 jar 有多个 main 方法,那么如何运行指定的 main 方法呢?用下面的命令试试...
  • 之前写的一个远程调用,现在写一个调用外部的JAR,再用反射调用里面的方法,从网上照抄的例子,但运行老遇到问题,查了蛮久,才改成功,写出来分享一下建一个类***********************************注意红字********...
  • java中jar打包的方法

    千次阅读 2021-03-08 03:08:35
    jar 应用 先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar -help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] ...
  • java执行jar中的class类

    2021-02-12 13:09:25
    很多情况都会需要运行jar,网上资料很多,大致分为三种方法:一、直接达成可执行的jar。二、定义lib path,使用命令执行。三、定时classloader,手动加载jar。第一种方案比较简单,就不做介绍。第二种方案比较适用于...
  • 假设我们有一个hello.jar文件,里面有一个Util类,我们希望在运行期调将这个jar包放入到我们运行环境并且调用里面的Util.getVersion方法。怎么实现?在java中,我们的类都是通过ClassLoader来加载的,同时...
  • Java调用jar包测试

    2021-07-21 15:23:51
    环境: 在桌面的testjar文件夹下有三个文件夹aa,bb,hello,对应四个类,aa下有类A,放在aa包中,bb下有类B,放在bb包中,hello\lzz...现在我想调用aaa.jar包中的A.class方法。 先把cmd调到桌面目录: 尝试执行,未成
  • 小编典典我可以以此方式在JavaScript中使用jar的类,但是在运行时必须将jar设置为类路径。我正在寻求类似于Jython /Python的解决方案,在该解决方案,您可以在Java中设置jar,但是我将创建批处理文件和sh文件并以...
  • Javajar文件如何读取数据的方法本文实例讲述了从Javajar文件读取数据的方法。分享给大家供大家参考。具体如下:Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案。它们允许开发人员把所有...
  • C++调用JavaJar

    2021-03-18 13:40:14
    一个简单需求:用C++调用Jar包。实现基本思路:调用CreateProcess API来启动cmd.exe运行jar包。调用类CJarAppCall。JarAppCall.h#pragma onceclass CJarAppCall{public:CJarAppCall(void);~CJarAppCall(void);/*@...
  • 1、java调用同一个类方法为什么要将方法申明成静态?那是因为你调用的“主方法”是静态的,那么“被调用的方法”也就需要时静态的,想要深入了解原因,你需要知道java的编译过程。静态方法的代码在项目启动的时候...
  • 本文实例讲述了从Javajar文件读取数据的方法。分享给大家供大家参考。具体如下:Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案。它们允许开发人员把所有相关的内容 (.class、图片、声音和支持...
  • 项目结构:使用的是一个spring+mybatis框架,在项目执行main方法 步骤: 1.点击File->Project Structure 2.依次选择Artifacts->JAR->From modules with ... 3.选择要执行的main方法,并且...
  • 使用Python3环境开发的平台需要集成一些公司的工具jar,实现页面可操作功能 环境 Python3.8.7 java version "1.8.0_221" 依赖包 调用jar需要依赖jpype pip install -ihttps://pypi.tuna.tsinghua.edu....
  • 在应用程序处理Jar文件简单介绍了如何使用java.util.jar包提供的API操作jar文件,下面通过一个相对复杂的例子讲述一些Jar文件相关的高级应用。仔细读读这篇文章并参考一下相关的java doc会对你学习java语言有很大...
  • 下面讲展示的是从image.jar包中调用image.Buddy类的方法。 public class Main { public static void main(String[] args) { try { // 两种方式都可以 URL url = new File("/Users/wuchen/Documents/IntelliJ...
  • actualArgs.add(0, "java"); actualArgs.add(1, "-jar"); actualArgs.add(2, jarFilePath); actualArgs.addAll(args); try { final Runtime re = Runtime.getRuntime(); //final Process command = re....
  • 1. 环境变量配置JAVA_HOMEC:\Program Files\Java\jdk1.8.0_121;...%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;#!! 起始处 ".;" 必不可少[代表了某种路径意义],末尾的";" 最好带上2. 命令行 编译 运...
  • 下面讲展示的是从image.jar包中调用image.Buddy类的方法。public class Main {public static void main(String[] args) {try {// 两种方式都可以URL url = new File("/Users/wuchen/Documents/IntelliJIDEA/Applet/...
  • Java中jar命令详解

    千次阅读 2021-04-21 21:32:43
    做项目的时候我们肯定接触过很多jar包,那么jar包是什么呢?笔者了解到jarjava archive file 的简写。从名字就可以知道,它的应用与Java息息相关。...在命令行键入jar命令之后,就会出现下图。里面详细的介绍了jar命...
  • JAVA调用本地jar

    2021-12-06 17:14:46
    public class TestInvoke { public static void main(String[] args)... URL url = new URL("file:D:\\Tools\\git projiect\\demoTest\\src\\main\\resources\\jar\\testInvoke-1.0-SNAPSHOT.jar"); URLClassLoader .
  • 一、将已经编译后的java中Class文件进行打包;打包命令JAR如:将某目录下的所有class文件夹全部进行打包处理;使用的命令:jar cvf test.jar -C com/ .其中test.jar为要生成的jar包;com/ . 为指定的当前目录下的...
  • java打开jar文件的方法

    千次阅读 2021-02-12 15:47:19
    java打开jar文件的方法发布时间:2020-06-18 13:47:28来源:亿速云阅读:252作者:鸽子jar文件其实是Java项目下生成的项目文件,当然也有用户称之为Java压缩包,里面封装了许多Java类以及方法,变量。如果用户想要...
  • java 使用cmd调用jar

    2021-11-15 16:51:59
    public class Qr { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { System.out.println("参数"+i+"为:"+args[i]); } } }
  • 示例代码:import subprocesssubprocess.call(['java', '-jar', 'temp.jar'])如何在上述命令指定JAVA_OPTS?使用上述命令时,出现“java.lang.OutOfMemoryError:无法创建新的本机线程”,我认为在命令指定JAVA_...
  • 使用Docker安装Java镜像运行jar方法

    千次阅读 2021-02-13 01:02:00
    1、下载java镜像,tag为8u111docker pull java:8u1112、运行docker容器docker run --name trading-server -p 5566:5566 -v /home/server/deploy/jar:/usr/jar -d java:8u111 java -jar /usr/jar/business-api.jar --...
  • I have created a jar file usign maven2 ... I am trying to run that jar file using the command:java -jar sample.jar com.app.TestTest being the class which is having the main method. But i am getting...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 980,994
精华内容 392,397
关键字:

java调用jar中方法

java 订阅