当前位置: 首页 > 知识库问答 >
问题:

使用grape从groovy脚本运行类main

微生恩
2023-03-14

我想通过使用@Grab运行java类的main方法,以便自动处理需求。更具体地说,我希望运行pdfbox示例https://github.com/apache/pdfbox/blob/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/removeAlltext.java

我编写了以下groovy脚本

#!/usr/bin/env groovy
@Grab('org.apache.pdfbox:pdfbox-examples:2.0.20')
import org.apache.pdfbox.examples.util.RemoveAllText
RemoveAllText.main(args)

main的@grab,import和execution似乎可以工作。但main似乎会反复回忆自己,因此失败,出现StackOverflowError(如下所示)。

Caught: java.lang.StackOverflowError
java.lang.StackOverflowError
        at RemoveAllText.main(RemoveAllText.groovy)
        at RemoveAllText$main.call(Unknown Source)
        at RemoveAllText.run(RemoveAllText.groovy:5)
        at RemoveAllText.main(RemoveAllText.groovy)
        ...

我是groovy的新手,所以我不确定我做错了什么。我要做的事可能吗?如果有可能,会怎么做?

groovy RemoveAllText.groovy helloworld.pdf helloworld_out.pdf
java -cp pdfbox-2.0.20.jar:commons-logging-1.2.jar:pdfbox-examples-2.0.20.jar org.apache.pdfbox.examples.util.RemoveAllText helloworld.pdf helloworld_out.pdf

它没问题。

共有1个答案

南门焱
2023-03-14

将您的脚本从RemoveAllText.groovy重命名为其他的东西,一切都应该很好。

groovy脚本生成的类名与Apache类相同的问题。

 类似资料:
  • 我想在詹金斯中强制执行以下场景: 我有工作A和工作B 我想在执行作业B时禁用作业A,在执行作业B后,我想再次启用作业A。 为了启用/禁用作业A,我使用了Groovy插件:Groovy插件 Groovy插件提供了两种可能性:执行Groovy脚本和执行系统Groovy脚本。 在开始执行作业B时,我添加了以下代码片段: 执行工作B后: 当我运行作业B时,它失败了,出现以下异常: 当我运行作业B时,它失败

  • 我正在使用Netbeans 7.4。我使用glassfish服务器创建了一个新的web项目。现在我喜欢在其中使用groovy脚本。但问题是groovy代码没有在那里进行解释。其输出与代码相同。 它应该给输出Hello Barun!但不是给我输出def name='Barun'println“Hello$name!” 我还将最新的groovy-all jar文件包含到我的项目库中。但是还没有运气。我

  • 我对是否可以在从属节点中使用Groovy脚本运行Jenkins作业感到困惑。我提到了一个 StackOverflow 答案 [1],它说 System Groovy 脚本作业可以在主站而不是从站中运行,并且要在从站中运行作业,它必须是 Groovy 脚本而不是 System Groovy 脚本。有人可以澄清我是否可以使用系统时髦脚本运行从属作业吗?由于我正在尝试通过Groovy脚本,因此无法访问几

  • 我想在gradle在Android中构建debug apk之前运行一些groovy脚本。 将此添加到Build.Gradle(应用程序) 将此添加到build.grade(android) 依赖关系{...classpath“org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6”} 我一直收到错误:错误:原因:错误=13,拒绝权限 更新: 在

  • 问题内容: 我有一个普通的脚本,我想在Java中执行它。有人可以为我提供更多有关如何实现此目的的文档/示例吗? 问题答案: 基本的Java + Groovy集成: 请参阅本文以获取更多从Java调用Groovy的方法 PS: 您需要包括如在Java程序中,例如:

  • 出于学习目的,我正在尝试在GCP上安装和设置我自己的Kubernetes集群。 我想在GCP上为我的实例提供一个引导脚本。 这是我的config 我在应用terraform时遇到了这个问题 错误:无法打开脚本“sudo apt get update” sudo apt-get安装 apt-transverage-https ca-证书 curl gnupg-Agent software-Prope