我可以向sun的rt.jar文件添加类吗?
我下载了Javax.mail包。我有jdk1.6.0_11。 问题是...我无法获得javac或java来查找这些类! 我可以使用JCreator LE来编译应用程序(通过将邮件罐 添加到其搜索列表中),但是当我尝试在命令窗口中运行应用程序时,它会失败。我可以向sun的rt.jar文件添加类吗?
我可以添加这些新类到rt.jar没有 伤害我的JDK安装? 我知道java有它连接起来寻找类。 (而且,邮件类是使用javax包内 - !好像 他们可以合理地添加到rt.jar中使用javax文件夹..
感谢 菲尔d”
不,你不能,也不应该你。
相反,找出问题与你的类加载器(可能的路径?)。你需要为你需要访问的下一个图书馆。
与梅辛的rt.jar意味着你可以不会在任何其他JVM上运行。
您应该在类路径中指定jar文件:最好在命令行中使用-cp
选项,但可能使用CLASSPATH
环境变量。
或者,您可以在java.ext.dirs
系统属性中指定其目录。有关更多详细信息,请参阅documentation for the extensions mechanism。
你不应该搞rt.jar
。这是非常肯定的而不是的方式来提供额外的jar文件 - 这是类似于试图将微软的Word添加到Windows内核;)
绝对没有。 如果您从命令行发布您正在运行的命令,我们将能够指出您正确的方向,但很可能您只是缺少一个classpath参数。
的java -classpath /path/to/mail.jar MyClass的
添加东西的rt.jar似乎是一个坏主意,即使它可能并容易实现。
尝试从这样的命令行编译应用程序:
javac -cp <path_to_3rd_libs>/jarfile.jar . MainClass.java
如果编译器还埋怨javax.mail包试图解开/检查jar文件看到javax.mail包(和其预期内容)在那里。
(在Windows上它很容易使用7zip的检查一个jar文件。)
您需要了解的CLASSPATH的概念,它可以让你个人类和包含类的jar文件添加到现有定义类的“宇宙”为你想编译和/或运行的代码。它在想法上与Windows世界中的PATH变量类似。
对于Windows命令行是这样的文件:
http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html
Java教程的不是这个特定概念写得很好的让我大吃一惊:
http://java.sun.com/docs/books/tutorial/essential/environment/paths.html
你最可能需要沿线的东西:
C:> set CLASSPATH = c: \ JavaMail的\ first.jar; C:\ JavaMail的\ second.jar
之后,java和javac的应该知道这些类
为什么这下投票? – 2009-04-12 19:29:57
由于黑客攻击JDK绝不是一个好的实践,相反,您可以在不损害开发环境的情况下破解JRE – 2009-04-12 19:45:18
因此,将其放入答案中。这并不意味着这是一个不好的问题。 – 2009-04-12 21:39:02