c*****s 发帖数: 214 | 1 在程序里用com.sun.tools.javac.Main这个类编译一java文件时,用的是静态compile方
法。这个类里没有一个方法可以让你指定ClassLoader。
我现在遇到的问题是用Main.compile()方法编译时一堆类找不到,而我手上有认识这些类
的ClassLoader。
怎样才能让Main用我指定的ClassLoader来编译文件呢?
我已经试过用这个ClassLoader 动态得到Main类,动态调用compile方法,但结果一样。
先谢。 |
h**j 发帖数: 2033 | 2 如果你那个classloader能拿到classpath的话就当参数传给Main即可
等于contruct javac command
seems Main uses classpath of the default classloader if
no -classpath argument assigned.
【在 c*****s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 在程序里用com.sun.tools.javac.Main这个类编译一java文件时,用的是静态compile方 : 法。这个类里没有一个方法可以让你指定ClassLoader。 : 我现在遇到的问题是用Main.compile()方法编译时一堆类找不到,而我手上有认识这些类 : 的ClassLoader。 : 怎样才能让Main用我指定的ClassLoader来编译文件呢? : 我已经试过用这个ClassLoader 动态得到Main类,动态调用compile方法,但结果一样。 : 先谢。
|
m******t 发帖数: 2416 | 3
方
类
。
I am not sure the concept of classloader applies to compilation at all. The
compiler only recognizes one source path and one classpath.
【在 c*****s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 在程序里用com.sun.tools.javac.Main这个类编译一java文件时,用的是静态compile方 : 法。这个类里没有一个方法可以让你指定ClassLoader。 : 我现在遇到的问题是用Main.compile()方法编译时一堆类找不到,而我手上有认识这些类 : 的ClassLoader。 : 怎样才能让Main用我指定的ClassLoader来编译文件呢? : 我已经试过用这个ClassLoader 动态得到Main类,动态调用compile方法,但结果一样。 : 先谢。
|
c*****s 发帖数: 214 | 4 不是命令行编译,是在程序中直接用Main类编译。
我有的ClassLoader是ClassLoader对象不是classpath字符串。此ClassLoader不是URLCla
ssLoader所以拿不到所有的jar和目录路径。就算可以,也不能保证每层父ClassLoader可
以。
在程序里用com.sun.tools.javac.Main这个类编译一java文件时,用的是静态compile方
些类
样。
【在 h**j 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 如果你那个classloader能拿到classpath的话就当参数传给Main即可 : 等于contruct javac command : seems Main uses classpath of the default classloader if : no -classpath argument assigned.
|
c*****s 发帖数: 214 | 5
在程序里用com.sun.tools.javac.Main这个类编译一java文件时,用的是静态compile
些
样
如果要动态编译,一般手上有的会是一个ClassLoader而不是路径。
www.janino.net是个能接受ClassLoader的嵌入java编译器,但存在别的顾虑。
我的要求不是很高,如果javac Main可以还是用它实现。
【在 m******t 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 方 : 类 : 。 : I am not sure the concept of classloader applies to compilation at all. The : compiler only recognizes one source path and one classpath.
|