2015-07-24 2 views
0

Я пытаюсь запустить программу SCALA,Scala 2.8 Программа HelloWorld ClassNotFoundException

class HelloWorld { 
    var myField = 0; 

    def getMyField() : Int = { 
    return this.myField; 
    } 

} 

Я продолжаю получать ClassNotFoundException, даже если программа называется HelloWorld.scala

Полная ошибка ниже

Exception in thread "main" java.lang.ClassNotFoundException: HelloWorld 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:190) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122) 

Хорошо, глядя на документацию scala http://www.scala-lang.org/documentation/getting-started.html

Я изменил код этого

object HelloWorld { 
    def main(args: Array[String]) { 
    println("Hello, world!") 
    } 
} 

Это ошибка в настоящее время

Information:24/7/15 10:55 AM - Compilation completed with 1 error and 7 warnings in 2s 32ms 
Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException 
Error compiling sbt component 'compiler-interface-2.8.0.final-51.0' 
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1$$anonfun$apply$2.apply(AnalyzingCompiler.scala:145) 
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1$$anonfun$apply$2.apply(AnalyzingCompiler.scala:142) 
    at sbt.IO$.withTemporaryDirectory(IO.scala:285) 
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1.apply(AnalyzingCompiler.scala:142) 
    at sbt.compiler.AnalyzingCompiler$$anonfun$compileSources$1.apply(AnalyzingCompiler.scala:139) 
    at sbt.IO$.withTemporaryDirectory(IO.scala:285) 
    at sbt.compiler.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:139) 
    at sbt.compiler.IC$.compileInterfaceJar(IncrementalCompiler.scala:33) 
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:87) 
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$$anonfun$getScalac$1.apply(CompilerFactoryImpl.scala:44) 
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$$anonfun$getScalac$1.apply(CompilerFactoryImpl.scala:43) 
    at scala.Option.map(Option.scala:145) 
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:43) 
    at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:22) 
    at org.jetbrains.jps.incremental.scala.local.CachingFactory$$anonfun$createCompiler$1.apply(CachingFactory.scala:24) 
    at org.jetbrains.jps.incremental.scala.local.CachingFactory$$anonfun$createCompiler$1.apply(CachingFactory.scala:24) 
    at org.jetbrains.jps.incremental.scala.local.Cache$$anonfun$getOrUpdate$2.apply(Cache.scala:20) 
    at scala.Option.getOrElse(Option.scala:120) 
    at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19) 
    at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:23) 
    at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:22) 
    at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:62) 
    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:20) 
    at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319) 
Warning:scalac: /tmp/sbt_20e2573f/compiler-interface-sources/CompilerInterface.scala:161: error: object creation impossible, since method registerTopLevelSym in trait GlobalCompat of type (sym: this.Symbol)Unit is not defined 
Warning:scalac:    new Compiler() with RangePositions // unnecessary in 2.11 
Warning:scalac:       ^
Warning:scalac: /tmp/sbt_20e2573f/compiler-interface-sources/CompilerInterface.scala:165: error: class Compiler needs to be abstract, since method registerTopLevelSym in trait GlobalCompat of type (sym: Compiler.this.Symbol)Unit is not defined 
Warning:scalac:  class Compiler extends CallbackGlobal(command.settings, dreporter, output) 
Warning:scalac:    ^
Warning:scalac: two errors found 
+1

Что вы ожидаете, когда будете «запускать» эту программу «Скала»? IntelliJ может быть настроен неправильно, но даже если бы это было так, код, который вы опубликовали, не может быть выполнен независимо. –

+0

@RexKerr Я не могу заставить это работать. Не могли бы вы указать ссылку на код, который фактически можно запустить? – wolfgang

+0

Похоже, что IntelliJ IDEA настроен неверно. Насколько я могу судить, вы не используете версию Scala, которую она ожидает. Если вы _actually_ используете Scala 2.8, я не уверен, что современный IntelliJ IDEA поддерживает это. Почему вы используете такую ​​старую версию Scala? 2.8 сейчас исполнилось пять лет, и прошло уже четыре года с момента его нынешней версии. –

ответ

1

Ваши ошибки не в коде, а в том, как вы пытаетесь запустить код.

Я загрузил код в REPL и не получил ошибок. Я загрузил код в IntelliJ и получил множество предупреждений о стиле, но ошибок не было. Я скомпилировал код и запустил его из командной строки:

%> java HelloWorld 
Error: Main method not found in class HelloWorld, please define the 
main method as: 
    public static void main(String[] args) 

Это то, чего следует ожидать.

+0

Я получаю эту ошибку в intelliJ: -/Отредактировал вопрос, любая идея, что может быть неправильным? или как я должен «изменить» способ запуска кода? – wolfgang

1

Я не понимаю, как вы пытаетесь запустить свою программу. Так как я не получаю никаких ошибок. Позвольте мне рассказать вам простой способ запустить фрагмент кода.

class HelloWorld{ 
     var myField = 0; 
     def getMyField() : Int = { 
     return this.myField; 
     }  
    } 

    object Test extends App{ 
     println(new HelloWorld().getMyField()) 
    } 

Попытка запустить Test объект, щелкнув правой кнопкой мыши внутри теста. Надеюсь, я был полезен.

+0

Я выполнил именно ваш код, у меня установлен scala 2.8.0 и плагин intelliJ (это старая версия). Я получаю эту ошибку http://pastebin.com/z4k27jHW – wolfgang

+0

@wolfgang ... Я изменил версию scala на 2.8 .0, все равно у меня проблем нет. Может быть из-за intellij Version, и я использую 14.1.1. Просьба обновить версию Intellij или версию Scala. Проверьте это для получения дополнительной информации http://stackoverflow.com/questions/14024905/intellij-12-and-internal-compilation-error-when-building-scala-project – Jet

Смежные вопросы