我用的是webstart实现动态加载功能
这是我的jnlp文件
<?xml version="1.0" encoding="gb2312"?><jnlp codebase="http://192.168.0.125:8080/dynamic">
 <information>  <title>动态加载</title>
  <vendor>RookieSoft Corporation</vendor>
  <description>MyIE just demo how to program with jnlp.</description>
  <homepage href="http://192.168.0.125:8080/dynamic" />
  <offline-allowed/>
 </information>
  <security>
        <all-permissions/>
  </security> <resources>
 
  <j2se version="1.4+"/>
  <jar href="lib/dynamic1.jar"/>
  <jar href="lib/dynamic2.jar"/>
 </resources> <application-desc main-class="lits.test.main.LoadAllJar">
   <argument>dynamic2.jar</argument>
 </application-desc></jnlp>这是LoadAllJar 类
public class LoadAllJar { public LoadAllJar() {
} public static void main(String [] args) throws IOException {
if (args.length > 0){
for (String jarName : args) {
// JarFile jar = new JarFile(jarName);
System.out.println(jarName);
System.out.println(ClassLoader.getSystemResource(jarName));
ClassLoader loader = ClassLoader.getSystemClassLoader();
System.out.println(loader.getResource(jarName));
}
}
}
}我在LoadAllJar 类中如何得到dynamic2.jar的内容,不是class类的,我想得到dynamic2.jar的manifest.mf信息
dynamic1.jar和dynamic2.jar是不同的jar包,两者没有关联
忘高手指教!

解决方案 »

  1.   

    有个思路,虽然很土,但我认为可行.
    以下思路假设jre版本是1.6以下,不适用于1.6
    1.在你的main()里可以通过调用java.util.jar.* 里头的一些api以及class对某jar文件进行读取操作.
    2.既然你通过的是javaws,那么下载到本地的jar文件会放在 类似 C:\Documents and Settings\yourname\Application Data\Sun\Java\Deployment\cache\javaws\http\yourcodebase\
    3.把1和2配合使用一下.
      

  2.   

    直接用GZIPInputStream解开这个jar文件?