
正文
Java动态加载定制代码 java 动态加载
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java:求教怎么把下面效果的数据通过数据库动态加载
确实没太明白你的意思
你是要根据日期来进行分类显示数据吗?
如果是这样的话,只能先取出所有数据,然后循环整理一下,日期作为key,放入hashmap中,最后显示的时候再循环hashmap
相关问答
Q1: 怎样动态执行一段JAVA代码
首先你可以使用输入输出流(或者你说的可能是要用反射得到程序结果来解析)解析做出*.Java文件。
然后可以使用runtime调用Dos下的java编译命令编译取得class文件。
然后使用classloader,反射等组合执行生成的class文件。
Q2: 关于java动态加载jar的问题?
设我们有一个hello.jar文件,里面有一个Util类,我们希望在运行期调将这个jar包放入到我们运行环境并且调用里面的Util.getVersion方法。怎么实现?
在java中,我们的类都是通过ClassLoader来加载的,同时ClassLoader具有层级关系,当某个类找不到时,它会去他的父类加载器去寻找,如果依然找不到,就抛出ClassNotFoundException了。
为了动态加载hello.jar里面的Util类,我们需要将这个jar包放入到我们的类加载器中去,然后再获取里面的类。如下面的代码。
// 位于hello.jar
package com.flyingzl;
public class Util {
public static void getVersion(){
System.out.println("java version: " + System.getProperty("java.version"));
}
}
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class Main {
public static void main(String[] args) {
URL[] urls = new URL[] {};
MyClassLoader classLoader = new MyClassLoader(urls, null);
try {
classLoader.addJar(new File("c:/hello.jar").toURI().toURL());
Class? clazz = classLoader.loadClass("com.flyingzl.Util");
Method method = clazz.getDeclaredMethod("getVersion");
method.invoke(null);
classLoader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
static class MyClassLoader extends URLClassLoader {
public MyClassLoader(URL[] urls) {
super(urls);
}
public MyClassLoader(URL[] urls, ClassLoader parent) {
super(urls, parent);
}
public void addJar(URL url) {
this.addURL(url);
}
}
}
注意:这里仅仅是为了展示如何动态加载jar包,代码写得很粗,生产代码需要有更完善的异常处理。我们只关心如何动态加载jar包即可。
动态加载jar包,需要用到java.net.URLClassLoader这个类,它可以指定一个路径将jar包或者classes文件加载到类空间。加载完毕后,直接调用loadClass就可以加载指定的类,然后通过反射生成实例或者调用方法即可。
其实,Tomcat等服务器也利用了此思路,比如每一个web应用启动时,它都会自动加载其下的lib文件夹下的jar包。
运行程序,我们就可以看到程序正常输出:
java version: 1.7.0_03
Q3: java 用swing来设计UI,能不能够实现动态的加载组件呢?
完全可以动态加载组件。
你在button触发的事件里,加一个 System.out.println("abc");
看看有没有执行。
还有,加JTree后,再执行一下 repaint(); 试试。
Q4: 怎样实现java代码的动态加载
1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。
2.调用外部javac命令将该文件编译。
3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。
上面的每一步都能在baidu中找到实现方法,自己发挥吧。
Q5: Java SWT动态加载界面(将界面的每个部分做成模块,然后由主程序load或者调用)
首先,把很多tab共同的方法抽出到一个抽象的类(我说的类,每个类都为独立文件),把一些有这样的操作但是具体操作不确定的抽成抽象方法。列如抽象类可以 叫 AbstractedTab, 然后。具体的Tab各自单独用一个类继承AbstractedTab,根据自己特有的操作实现抽象方法。(这里有用到了一个设计模式:模板法),然后这些具体的的Tab可以根据需要,放到需要用到的类中new(产生)实例。
Java动态加载定制代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 动态加载、Java动态加载定制代码的信息别忘了在本站进行查找喔。







