在jar文件中的类内调用静态方法

Dan*_*l.V 6 java

我想在jar文件中的类中执行没有主方法的类中的特定方法,java -cp classes.jar com.example.test.Application但尝试使用java命令,但出现此错误Error: Could not find or load main class。反编译jar文件后,我发现其中的Application类可以调用静态函数jar文件中的Application类内部?

i.b*_*nko 8

您可以使用Jshell

$ jshell --class-path  ~/.m2/repository/org/apache/commons/commons-lang3/3.9/commons-lang3-3.9.jar
|  Welcome to JShell -- Version 11.0.4
|  For an introduction type: /help intro

jshell> org.apache.commons.lang3.StringUtils.join("a", "b", "c")
$1 ==> "abc"
Run Code Online (Sandbox Code Playgroud)

或创建一个带有main的java类,并使用java运行:

Test.java:

class Test {
    public static void main(String[] args) {
        String result = org.apache.commons.lang3.StringUtils.join("a", "b", "c");
        System.out.println(result);
    }
}
Run Code Online (Sandbox Code Playgroud)

编译并运行

$ javac -cp /path/to/jar/commons-lang3-3.9.jar  Test.java
$ java -cp /path/to/jar/commons-lang3-3.9.jar:.  Test
abc
Run Code Online (Sandbox Code Playgroud)