最近两天一直在处理ant运行java程序的一个问题,用IDE直接运行类里面的main函数一切正常,但用ant跑该函数就报错误,错误的原因是运行ant任务时调用的是AntClasloader,而IDE里面调用的是jvm里面的classloader。

如何使ant直接调用jvm的classloader呢?尝试过了很多办法都不行,最后在不经意间设置了fork=true这个属性,结果运行正常了。

在网上查了下fork的资料,ant官方定义是:

if enabled triggers the class execution in another VM

Ant默认行为是调用运行Ant本身的JVM,然而如果你想要单独地调用编译器,则需要设置fork属性为true。

1
<java fork="true" classname="xxx" />

以后发现在IDE里面可以运行成功,但在ant里面不能跑成功的,可以加上fork这个属性,这样一般就都可以通过了:)

相关文章:

  • 2022-12-23
  • 2021-07-05
  • 2022-12-23
  • 2021-12-03
  • 2021-12-11
  • 2021-04-20
  • 2021-08-07
  • 2021-06-13
猜你喜欢
  • 2021-05-24
  • 2021-11-23
  • 2022-01-05
  • 2021-12-02
  • 2022-12-23
  • 2021-07-24
  • 2021-10-17
相关资源
相似解决方案