小编Jai*_*rel的帖子

Groovy - 将对象转换为JSON字符串

我已经习惯了Grails转换器,你可以将任何对象转换为JSON表示,就像这样(http://grails.org/Converters+Reference)

return foo as JSON
Run Code Online (Sandbox Code Playgroud)

但在简单的groovy中,我找不到一个简单的方法(http://groovy-lang.org/json.html)

JSONObject.fromObject(this)
Run Code Online (Sandbox Code Playgroud)

返回空的json字符串...

我错过了一个明显的Groovy转换器吗?或者我应该去杰克逊或gson图书馆?

groovy json

68
推荐指数
3
解决办法
10万
查看次数

关闭的Groovy概念

我对Groovy 文档中使用的术语"闭包"感到困惑.根据文档,他们对闭包的定义看起来更像是匿名函数或lambda.

我理解支持第一类函数的语言通常允许形成闭包.但是,这两个概念之间存在差异.

例如,根据Groovy文档:

Groovy中的闭包是一个匿名的代码块,可以接受参数,返回值,引用和使用在其周围范围内声明的变量.

在函数式语言中,这样的匿名代码块通常可以称为匿名lambda表达式,或者带有未绑定变量的lambda表达式,或者如果它不包含对未绑定变量的引用(如前面示例中的阈值),则称为闭合lambda表达式.Groovy没有这样的区别.

然后根据关闭的Wikipedia页面:

术语闭包通常被错误地用于表示匿名函数.

我错过了什么?

groovy closures

9
推荐指数
1
解决办法
1201
查看次数

如何更改Eclipse-Groovy插件Groovy库?

我正在使用随附的Eclipse-Groovy插件的最新版本(2.8.0)groovy-all-2.1.5.jar.我将Guice添加到我的Groovy项目中,当我从Eclipse内部运行它们时,我在控制台输出中收到以下错误:

Caught: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
    at net.me.myapp.utils.restclient.RestClient.<init>(RestClient.groovy:57)
    at net.me.myapp.inject.UserServiceClientModule.configure(UserServiceClientModule.groovy:34)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:59)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
    at com.google.inject.spi.Elements.getElements(Elements.java:101)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at net.me.myapp.UserServiceClient.<init>(UserServiceClient.groovy:37)
    at net.me.myapp.UserServiceClient.main(UserServiceClient.groovy:45)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
    ... 12 more
Run Code Online (Sandbox Code Playgroud)

根据这个答案,因为ShortTypeHandling直到2.3.x才添加.所以我现在想附加groovy-all-2.3.3.jar到我的Eclipse项目的类路径.

问题是我似乎没有编辑权限来更改库在Groovy Libraries库中使用的库.当我手动将2.3.3 JAR添加到我的构建路径时,我收到以下错误:

Caught: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.1.5 and you are trying to load version 2.3.3
Run Code Online (Sandbox Code Playgroud)

我有什么选择?

eclipse groovy eclipse-plugin buildpath eclipse-classpath

6
推荐指数
1
解决办法
6865
查看次数

安装Groovy

最近我下载了Groovy-2.3.6并尝试在Linux系统上安装它.我按照http://groovy-lang.org/install.html的说明进行操作.我设置了GROOVY_HOME变量.

export GROOVY_HOME=/home/work/Software/groovy-2.3.6
Run Code Online (Sandbox Code Playgroud)

然后我将我的环境路径变量设置为Groovy bin文件夹

  export PATH=$PATH:/home/work/Software/groovy-2.3.6/bin
Run Code Online (Sandbox Code Playgroud)

已创建JAVA_HOME变量.

现在,当我尝试运行任何Groovy命令时,它会生成以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groo/tool/GroovyStarter
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.tools.GroovyStarter
      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.codehaus.groovy.tools.GroovyStarter.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

我正在通过一些网站来解决这个问题.我发现如果我设置了错误的GROOVY_HOME路径,那么它就会发生.我无法弄清楚该变量的正确路径应该是什么.任何人都可以帮我这个.谢谢

groovy

4
推荐指数
1
解决办法
2万
查看次数

为 RStudio Server 1.0.44 配置日志目录

我在 CentOS 7 上运行 RStudio Server 1.0.44。

根据文档,服务器监视器日志位于/var/lib/rstudio-server/monitor/log,但我无法在那里找到它们。monitor文件夹下没有文件夹/var/lib/rstudio-server,只有bodyconf和子文件夹,系统中proxy没有。rstudio-server.log也许我在安装过程中错过了一些东西?

我想尝试手动设置日志文件夹,但我还没有找到任何方法来设置此属性。这可能吗?

任何帮助,将不胜感激。

PS 另一位用户在 rstudio 论坛中发布了相同的(未回答的)问题。

r rstudio-server

4
推荐指数
1
解决办法
3032
查看次数

groovy 二进制版本 vs groovy-all-jar

当我想从http://groovy-lang.org/download.html下载 groovy 时,我得到了“二进制版本”。这意味着我有一个带有libbinembeddable文件夹的目录结构。在bin文件夹中有一个groovyshell 脚本,让我可以执行我自己的 groovy 源文件。此groovyshell 脚本使用lib目录中的 jars 。但是,我希望它使用embeddable目录中groovy-all-jar 中的 jars 。原因是,我不希望jar在我的类路径中的目录中的所有 jars,因为我需要使用不同的版本。

如何groovy使用 groovy-all-jar制作shell 脚本?

shell groovy jar classpath

1
推荐指数
1
解决办法
2134
查看次数