[英]How to keep a jar file external but still use its classes in my Android project?
[英]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
但是,您可以简单地要求用户将要打印的文本作为参数传递给程序,就像这样(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.