繁体   English   中英

如何将JAR文件中的外部类用作程序中的类之一?

[英]How to use an external class in a JAR file as one of the classes in my program?

所以我只是在考虑用户插件的想法。 我写了一个简单的类,它打印出一个String。 然后,我编写了一个接口,该接口需要一种方法来编辑String。 现在,我希望用户能够将Jar文件插入文件夹(与程序一起包装),然后我的程序将其读入,并将其用作实现我创建的接口的类。 因此,基本上,我正在寻找一种读取jar文件内容的方法,并将其类用作我的程序类之一。 对于任何不正确的术语,我们深表歉意,我对此很陌生。 如果这是解决问题的错误方法,请告诉我,我愿意采取更好的方法。 谢谢!

类:

public class Project {
    static String message = "default message";
    public static void main(String args[]) {
        System.out.println(message);
    }
}

接口:

public interface Mod {
    void modifyText(String moddedMessage);
}

用户插件

public class UserMod implements Mod {

    public void modifyText(String moddedMessage) {
        moddedMessage = "New Message";
        Project.message = moddedMessage;

    }

}

如果我错了,请纠正我,但您只是希望使用.jar文件中的外部Java类?

如果是这种情况,您应该只在程序中使用它,然后在编译时将其jar引用给Java编译器(考虑到没有提到的类的包装,因为您没有指定任何包装 -请参阅Java包 -如果有软件包,则需要导入UserMod类或使用其完全限定名称)。 例如:

public class Project {
    static String message = "default message";
    public static void main(String args[]) {
        String newMessage = "new message";
        UserMod userMod = new UserMod();
        userMod.modifyText(newMessage());
        System.out.println(message);
    }
}

然后,在命令行上编译并运行:

javac -cp UserMod.jar Project.java
java Project

编辑:您说您正在使用Eclipse。 那就应该更容易了。 右键单击该项目将打开上下文菜单。 单击属性,然后转到Java构建路径>库。 您可以添加jar文件或类文件夹。 取自这里

但是,您可以简单地要求用户将要打印的文本作为参数传递给程序,就像这样(args数组只是作为参数传递给程序的字符串数组):

public class Project {
   public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("No parameters. Please give me something to print!!");
        } else {
            for (String parameter : args) {
                System.out.println(parameter);
            }
        }
    }
}

然后,使用所需的任何参数编译并运行它:

javac Project.java
java Project "new message"
>> new message

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM