正在尝试 运行 Scala 测试,得到 java.lang.ClassNotFoundException:org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner
Trying to run Scala test, getting java.lang.ClassNotFoundException: org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner
我在 IntelliJ IDEA 2016.2 中有一个 Gradle 项目。每次我 运行 项目中的 Scala 测试,我都会得到以下异常:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:48)
Caused by: java.lang.ClassNotFoundException: org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
... 5 more
我检查了依赖项的版本,并将 Scala SDK 添加到项目模块中。我还在 Gradle 文件中添加了 Scala 插件,并在 IntelliJ IDEA 中安装了 Scala 插件。此外,在我同事的计算机上测试 运行 没有错误,所以我们不知道错误可能是什么。
找到原因:我的用户目录名称中有一个重音字母,IDEA 总是尝试使用该目录下 AppData 中的某些文件。我已经更改了 idea.properties
文件,但它对该文件没有影响。
一种可能的解决方法是使用 gradle(或 maven/sbt/etc)。在我的例子中,我使用 gradle,我只是将 @RunWith(classOf[JUnitRunner])
添加到我要测试的 scala class,然后执行 gradle 的测试任务。
对我来说,命令行长度限制的解决方案至关重要。 Idea 提供了大约 3 种方法来克服命令太长的问题。选择另一个并检查。
它在 运行 配置中。
我在 IntelliJ IDEA 2016.2 中有一个 Gradle 项目。每次我 运行 项目中的 Scala 测试,我都会得到以下异常:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:48)
Caused by: java.lang.ClassNotFoundException: org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
... 5 more
我检查了依赖项的版本,并将 Scala SDK 添加到项目模块中。我还在 Gradle 文件中添加了 Scala 插件,并在 IntelliJ IDEA 中安装了 Scala 插件。此外,在我同事的计算机上测试 运行 没有错误,所以我们不知道错误可能是什么。
找到原因:我的用户目录名称中有一个重音字母,IDEA 总是尝试使用该目录下 AppData 中的某些文件。我已经更改了 idea.properties
文件,但它对该文件没有影响。
一种可能的解决方法是使用 gradle(或 maven/sbt/etc)。在我的例子中,我使用 gradle,我只是将 @RunWith(classOf[JUnitRunner])
添加到我要测试的 scala class,然后执行 gradle 的测试任务。
对我来说,命令行长度限制的解决方案至关重要。 Idea 提供了大约 3 种方法来克服命令太长的问题。选择另一个并检查。
它在 运行 配置中。