我有麻烦编写代码,它具有一家依赖jline-0.9.94.具体而言,我要汇编 时髦的1.7.6 使用其默认的蚂蚁目标和获得的下述错误:

[...]
-banner:
     [echo] Java Runtime Environment version: 1.6.0_22
     [echo] Java Runtime Environment vendor: Apple Inc.
     [echo] Ant version: Apache Ant version 1.7.1 compiled on June 27 2008
     [echo] Operating system name: Mac OS X
     [echo] Operating system architecture: x86_64
     [echo] Operating system version: 10.6.6
     [echo] Base directory: /Users/ldhanson2/tmp/groovy-1.7.6
     [echo] Java Home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
[...]
-stagedcompile-groovy:
  [groovyc] Compiling 166 source files to /Users/ldhanson2/tmp/groovy-1.7.6/target/classes
  [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
  [groovyc] Compile error during compilation with javac.
  [groovyc] /Users/ldhanson2/tmp/groovy-1.7.6/src/main/groovy/ui/InteractiveShell.java:222: cannot find symbol
  [groovyc] symbol  : method setDefaultPrompt(java.lang.String)
  [groovyc] location: class jline.ConsoleReader
  [groovyc]         reader.setDefaultPrompt("groovy> ");
  [groovyc]               ^

该jline依赖的是正确的解决,但奇怪的setDefaultPrompt方法似乎并不存在的瓶子:

$ javap -classpath target/lib/compile/jline-0.9.94.jar jline.ConsoleReader | grep setDefaultPrompt
$ 

(其他方法出现缺失,javap输出,但setDefaultPrompt是一个打破我的建立。)

我已经试过抹去了jline从我的当地专家库,并再次尝试,也没有用。我也检查了jline jarfile从 家中央 如一面镜子有相同的结果。

奇怪的是,我可以复制的罐子文件的不同机(一个太阳)和执行完全相同的步骤和我看到的setDefaultPrompt方法在罐子文件的预期。其他人已经成功地进行同样的步骤对Mac。

可能会发生什么事在我的机器将防止Java工具链看到的方法包含在罐子里的文件?

有帮助吗?

解决方案

我的机器上有同样的问题(编译Jruby,而不是Groovy)。

解决我的问题的解决方案是,我在/library/java/extensions/jline-0_9_5.jar上发现了一个古老的Jline Jar,因此我对其进行了努力,并用更现代的版本代替了它。

其他提示

您必须具有不同版本的JAR文件。

不可重复在我的Mac10.5.8java1.5.0_13

如果你提取物 jline-0.9.94.jar 和阅读它的 META-INF/MANIFEST.MF 然后你可能会发现,这个罐子是编制通过java1.4.2_16:

 Manifest-Version: 1.0
 Archiver-Version: Plexus Archiver
 Created-By: Apache Maven
 Built-By: jason
 Build-Jdk: 1.4.2_16

Java运行环境是向后兼容的,但是之间的距离你1.6.0_22和1.4.2_16是非常大的。

所以,我想你要重新编译jline从 源代码.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top