【问题标题】:Basics: Importing a class in groovy基础知识:在 groovy 中导入类
【发布时间】:2020-09-08 13:57:45
【问题描述】:

我对此感到头疼,但我似乎无法弄清楚我做错了什么。

我有一个文件夹“myproject”和两个文件 - “MyScript.groovy”和“MyClass.groovy”。

MyClass.groovy

package myproject

public class MyClass {
    void printHello() {
        println("hello")
    }
}

MyScript.groovy

package myproject
import myproject.MyClass

def myObject = new MyClass()
myObject.printHello()

当我尝试运行 MyScript.groovy 时,出现以下错误:

[Running] groovy "c:\Users\myUser\...\myproject\MyScript.groovy"
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
C:\Users\myUser\...\myproject\MyScript.groovy: 2: unable to resolve class myproject.MyClass
 @ line 2, column 1.
   import myproject.MyClass
   ^

1 error

我认为这无关紧要,但我正在通过 Visual Studio 中的 Code Runner Extension 运行它。 任何帮助,将不胜感激。 :)

【问题讨论】:

    标签: visual-studio groovy vscode-code-runner


    【解决方案1】:

    无需进一步配置,Groovy 假定当前工作 目录作为(部分)类路径。所以你的设置基本上是 正确的;假设是这样的:

    # find .
    .
    ./myproject
    ./myproject/MyClass.groovy
    ./myproject/MyScript.groovy
    

    所以在包结构和目录结构匹配的地方运行它, 它有效:

    # groovy myproject/MyScript.groovy 
    hello
    

    所以你最可能的问题是,你的 IDE 没有设置 cwd 正确或您已将 .../myproject 配置为项目 根。

    【讨论】:

      【解决方案2】:

      我在使用单独项目目录中的类时遇到了这个问题。

      这对我有用: 在代码运行器的设置中(文件 > 偏好设置 > 设置 > 搜索“运行器”)

      我在 executorMap 设置中添加/更新了这个:

      "code-runner.executorMap": {
          "groovy": "groovy -cp \".;src;vars;C:\\GitRepositories\\my-other-library\\src\"",
      }
      

      当您随后运行代码时,您会看到使用显示的类路径更新的命令。

      我知道这个问题很老,但我找不到答案,并认为这可能对其他人有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-16
        • 2018-05-25
        • 2014-11-28
        • 2014-02-14
        • 2023-04-10
        相关资源
        最近更新 更多