作者wctang (wctang)
看板java
标题Re: [J2SE] class loader
时间Tue Jun 17 02:46:43 2008
※ 引述《csihcs (非天夜翔)》之铭言:
: ※ 引述《wctang (wctang)》之铭言:
: : 不是一定要用 jar,用 jar 和把 .class 放到一个目录是相同的。
: : 这里这麽做只是为了让环境变得比较单纯...
: : 至於没有 jar 的程式,其实 jre 本身就可以产生 jar 了:
: : http://java.sun.com/docs/books/tutorial/deployment/jar/apiindex.html
: : 这里这麽做只是为了让说明方便。
: : (其实 javac 也可以由 java 来呼叫而不用外部程式,但应该就不内建在 jre 内了)
: Q1:
: 我尝试不用 classes.jar 把 .class 包起来,而直接用 .class 却发现,
: 输出会变成
: bfe
: bfe
: 而不会是预期的
: bfe
: aft
: 怎麽会变成这样咧??
: 这样是不是代表着必须使用 jar 档来做到 runtime update class??
: 还是因为我的 url 打错的关系,
: new URL("file:classes.jar");
: new URL("file:."); // <- 我认为这样是使用 .class
其实,我的确一直是用 jar 来做的。但我不认为只能用 jar
根据
http://java.sun.com/j2se/1.4.2/docs/api/java/net/URLClassLoader.html
"Any URL that ends with a '/' is assumed to refer to a directory."
这可能是理由。
: Q2:
: 我用了 sun.tools.jar.Main 这个 class
: 来取代 Runtime.getRuntime... 那一行,
: 但是 compile 的时候却跟我说一个警告就是
: sun.tools.jar.Main 是 Sun 专有的 API,未来的版本可能会被移除。
: 那我该怎麽做可以不使用 Runtime class 来呼叫 jar 这个外部程式而使用内建的,
: Q3:
: 网址中教学的部份是 runtime 使用已经建好的 jar 档,
: 而不是 runtime 时建立 jar 档,
: 难道 Sun 是故意不让 Programmer 在 runtime 建立 jar 档使用??
: 问题很多,谢谢各位大大看完与指教~~~ m(_@_)m
ㄟ,其实我想说不用理那个警告,不过,基於 jar 其实就是 zip,所以用
ZipOutputStream 应该也是一样的...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.126.90
1F:推 csihcs:刚刚试过用 new URL("file:/"); 了 06/17 03:05
2F:→ csihcs:output 还是 bfe bfe Q.Q" 06/17 03:06