我试图在GroovyFX 12中启动一个IntelliJ项目,但是,我无法让IntelliJ编译并运行以下简单脚本(用于以尽可能简单的方式再现问题):
@Grab(group='org.codehaus.groovyfx', module='groovyfx', version='0.3.1')
import groovyx.javafx.GroovyFX
println GroovyFX.class.name我使用IntelliJ对Grape的支持来添加groovyfx作为我模块的依赖项( jar显示在“外部库”下,编辑器不会抱怨在那之后类丢失了!)但是,当我运行这个脚本时,它会抛出一个错误:
Groovyc:无法解析类groovyx.javafx.GroovyFX
我能够让这个脚本在GroovyConsole中运行,没有太多的问题,就像预期的那样.
我试着抓取另一个随机选择的依赖项(原来是Spring库),它很快就成功了:
@Grab(group='org.springframework', module='spring', version='2.5.6')
import org.springframework.jdbc.core.JdbcTemplate
println JdbcTemplate.class.name我看不出为什么Spring库应该工作,但是GroovyFX库不工作!
我甚至再次检查了GroovyFx库是否已经被实际下载,并且它应该在那里(在GroovyFx下)。
是什么导致了这个奇怪和非常令人沮丧的问题?
发布于 2013-02-05 13:24:55
我用groovyConsole (来自groovy-sdk-2.1.0)和IntelliJ IDEA 12.0.3测试了您的问题。我唯一的例外是:
Caught: java.lang.NoClassDefFoundError: javafx/application/Application
java.lang.NoClassDefFoundError: javafx/application/Application
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
... 1 more这是因为JavaFX运行时(jfxrt.jar)不在类路径中。这个可以用
mvn com.zenjava:javafx-maven-plugin:1.3:fix-classpath上面的命令来自JavaFX Maven插件Wiki。你只需要执行一次。在这一变化之后,groovyConsole和IntelliJ都在工作。我不得不重新启动groovyConsole,这对于IntelliJ来说不是必要的。
有趣的是,我没有在“外部库”下看到GroovyFx。我是使用简单的想法,社区版,没有任何插件。
来自GroovyFX主页的Hello在思想上是开箱即用的,但在groovyConsole中却没有--我还得到了"java.lang.ClassNotFoundException: groovyx.javafx.GroovyFX“。我设法让它使用以下代码运行,但这不是一个很好的解决方案,因为它只在第一次运行时工作,所以您必须重新启动groovyConsole:
@GrabConfig(systemClassLoader=true, initContextClassLoader=true)
@Grab(group='org.codehaus.groovyfx', module='groovyfx', version='0.3.1')
import static groovyx.javafx.GroovyFX.start
start {
stage(title: 'GroovyFX Hello World', visible: true) {
scene(fill: BLACK, width: 500, height: 250) {
hbox(padding: 60) {
text(text: 'Groovy', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [PALEGREEN, SEAGREEN])
}
text(text: 'FX', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [CYAN, DODGERBLUE])
effect dropShadow(color: DODGERBLUE, radius: 25, spread: 0.25)
}
}
}
}
}我不确定,但我认为原因是这个bug 这里。应该在Groovy2.2中修复,我们将看到。
https://stackoverflow.com/questions/14095430
复制相似问题