J'ai eu un bon coup de poing en essayant Hello World avec Scala (objet java.lang.Object dans le miroir du compilateur introuvable.)

TL;DR

Le salaire moyen de Scala ~~ était très élevé, donc j'étais intéressé par ~~, alors j'ai décidé de l'essayer, alors j'ai décidé de faire un projet pour Hello World pendant mon temps libre.

Classement des revenus annuels moyens par langue

Eh bien, je fais du système d'installation à divers endroits, donc c'est mieux maintenant.

Il ne devrait y avoir aucun problème si vous utilisez le framework le plus populaire.

playframework

Eh bien, tout de suite.

console


$ activator new my-first-app play-scala

Terminé sans aucun problème (j'ai l'impression que l'AVERTISSEMENT était sorti ...)

console


$ cd my-first-app/
$ activator
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by activator.ActivatorProxyAuthenticator$ (file:/Users/(username)/.sbt/boot/scala-2.11.8/com.typesafe.activator/activator-launcher/1.3.12/activator-launcher-1.3.12.jar) to field java.net.Authenticator.theAuthenticator
WARNING: Please consider reporting this to the maintainers of activator.ActivatorProxyAuthenticator$
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
error: error while loading package, Missing dependency 'object java.lang.Object in compiler mirror', required by /Users/(username)/.sbt/boot/scala-2.10.6/lib/scala-library.jar(scala/package.class)
error: error while loading package, Missing dependency 'object java.lang.Object in compiler mirror', required by /Users/(username)/.sbt/boot/scala-2.10.6/lib/scala-library.jar(scala/runtime/package.class)
scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.
	at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16)
	at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17)
	at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48)
	at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40)
	at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40)
	at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:61)
	at scala.reflect.internal.Mirrors$RootsBase.getClassByName(Mirrors.scala:99)
	at scala.reflect.internal.Mirrors$RootsBase.getRequiredClass(Mirrors.scala:102)
	at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass$lzycompute(Definitions.scala:264)
	at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass(Definitions.scala:264)
	at scala.reflect.internal.Definitions$DefinitionsClass.AnyRefClass$lzycompute(Definitions.scala:263)
	at scala.reflect.internal.Definitions$DefinitionsClass.AnyRefClass(Definitions.scala:263)
	at scala.reflect.internal.Definitions$DefinitionsClass.specialPolyClass(Definitions.scala:1120)
	at scala.reflect.internal.Definitions$DefinitionsClass.RepeatedParamClass$lzycompute(Definitions.scala:407)
	at scala.reflect.internal.Definitions$DefinitionsClass.RepeatedParamClass(Definitions.scala:407)
	at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses$lzycompute(Definitions.scala:1154)
	at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses(Definitions.scala:1152)
	at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode$lzycompute(Definitions.scala:1196)
	at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode(Definitions.scala:1196)
	at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1261)
	at scala.tools.nsc.Global$Run.<init>(Global.scala:1290)
	at sbt.compiler.Eval$$anon$1.<init>(Eval.scala:141)
	at sbt.compiler.Eval.run$lzycompute$1(Eval.scala:141)
	at sbt.compiler.Eval.run$1(Eval.scala:141)
	at sbt.compiler.Eval.unlinkAll$1(Eval.scala:144)
	at sbt.compiler.Eval.evalCommon(Eval.scala:153)
	at sbt.compiler.Eval.eval(Eval.scala:96)
	at sbt.EvaluateConfigurations$.evaluateDslEntry(EvaluateConfigurations.scala:177)
	at sbt.EvaluateConfigurations$$anonfun$9.apply(EvaluateConfigurations.scala:117)
	at sbt.EvaluateConfigurations$$anonfun$9.apply(EvaluateConfigurations.scala:115)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.immutable.List.foreach(List.scala:318)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
	at sbt.EvaluateConfigurations$.evaluateSbtFile(EvaluateConfigurations.scala:115)
	at sbt.Load$.sbt$Load$$loadSettingsFile$1(Load.scala:725)
	at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile$1$1.apply(Load.scala:731)
	at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile$1$1.apply(Load.scala:730)
	at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
	at scala.collection.AbstractMap.getOrElse(Map.scala:58)
	at sbt.Load$.sbt$Load$$memoLoadSettingsFile$1(Load.scala:730)
	at sbt.Load$$anonfun$loadFiles$1$2.apply(Load.scala:738)
	at sbt.Load$$anonfun$loadFiles$1$2.apply(Load.scala:738)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
	at sbt.Load$.loadFiles$1(Load.scala:738)
	at sbt.Load$.discoverProjects(Load.scala:749)
	at sbt.Load$.discover$1(Load.scala:555)
	at sbt.Load$.loadTransitive(Load.scala:584)
	at sbt.Load$.loadProjects$1(Load.scala:452)
	at sbt.Load$.loadUnit(Load.scala:456)
	at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:291)
	at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:291)
	at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:91)
	at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:90)
	at sbt.BuildLoader.apply(BuildLoader.scala:140)
	at sbt.Load$.loadAll(Load.scala:344)
	at sbt.Load$.loadURI(Load.scala:299)
	at sbt.Load$.load(Load.scala:295)
	at sbt.Load$.load(Load.scala:286)
	at sbt.Load$.apply(Load.scala:140)
	at sbt.Load$.buildPluginDefinition(Load.scala:836)
	at sbt.Load$.buildPlugins(Load.scala:802)
	at sbt.Load$.plugins(Load.scala:790)
	at sbt.Load$.loadUnit(Load.scala:441)
	at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:291)
	at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:291)
	at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:91)
	at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:90)
	at sbt.BuildLoader.apply(BuildLoader.scala:140)
	at sbt.Load$.loadAll(Load.scala:344)
	at sbt.Load$.loadURI(Load.scala:299)
	at sbt.Load$.load(Load.scala:295)
	at sbt.Load$.load(Load.scala:286)
	at sbt.Load$.apply(Load.scala:140)
	at sbt.Load$.defaultLoad(Load.scala:36)
	at sbt.BuiltinCommands$.liftedTree1$1(Main.scala:492)
	at sbt.BuiltinCommands$.doLoadProject(Main.scala:492)
	at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:484)
	at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:484)
	at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:59)
	at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:59)
	at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:61)
	at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:61)
	at sbt.Command$.process(Command.scala:93)
	at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
	at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
	at sbt.State$$anon$1.process(State.scala:184)
	at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
	at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.MainLoop$.next(MainLoop.scala:96)
	at sbt.MainLoop$.run(MainLoop.scala:89)
	at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:68)
	at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:63)
	at sbt.Using.apply(Using.scala:24)
	at sbt.MainLoop$.runWithNewLog(MainLoop.scala:63)
	at sbt.MainLoop$.runAndClearLast(MainLoop.scala:46)
	at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:30)
	at sbt.MainLoop$.runLogged(MainLoop.scala:22)
	at sbt.StandardMain$.runManaged(Main.scala:54)
	at sbt.xMain.run(Main.scala:29)
	at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
	at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
	at xsbt.boot.Launch$.run(Launch.scala:109)
	at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
	at xsbt.boot.Launch$.launch(Launch.scala:117)
	at xsbt.boot.Launch$.apply(Launch.scala:18)
	at xsbt.boot.Boot$.runImpl(Boot.scala:41)
	at xsbt.boot.Boot$.main(Boot.scala:17)
	at xsbt.boot.Boot.main(Boot.scala)
[error] scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q

** Je n'ai pas écrit que ça sortirait comme ça? ** **

Il semble que le java installé (java10) ne soit pas le problème () Quand j'ai recherché une erreur sur Google, c'était difficile à trouver car seuls les articles où la partie java.lang.Object est devenue scala venaient en tête. (Échec de l'initialisation du compilateur: objet java.lang.Object dans le miroir du compilateur introuvable ) Donc, java8 devrait être bien, alors installez-le.

console


$ brew cask install caskroom/versions/java8

Entré java8! Alors, changez immédiatement.

console


$ vi ~/.bashrc

.bashrc


export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v “1.8”`
PATH=$JAVA_HOME/bin:$PATH

console


$ source ~/.bashrc

$ activator run
...
...
(Server started, use Ctrl+D to stop and go back to the console...)
スクリーンショット 2018-04-19 15.08.43.png

Tu l'as fait. J'avais un grand sentiment d'accomplissement (je lance quelque chose qui semble être la cause, mais j'étais inquiet environ 2 heures), mais je suis venu pour écrire helloworld, alors je vais l'écrire.

routes


GET			/hello									controllers.GreetController.index

GreetController.scala


package controllers

import javax.inject._
import play.api._
import play.api.mvc._

@Singleton
class GreetController @Inject() extends Controller {

  def index = Action {
    Ok("Hello world")
  }
}

Accédez à [localhost: 9000 / hello](localhost: 9000 / hello).

スクリーンショット 2018-04-19 14.57.48.png

Chissa www

environnement

・ Mac OS X EL Capitan 10.11.6 ・ Jouer au 2.5.10

console


$ scala -version
Scala code runner version 2.12.5 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.

$ java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

référence

playframework Actions, Controllers and Results

Postscript [2018/09/12]

J'ai ajouté un titre car il ne peut être utilisé que s'il est capturé par le contenu de l'erreur.

Recommended Posts

J'ai eu un bon coup de poing en essayant Hello World avec Scala (objet java.lang.Object dans le miroir du compilateur introuvable.)
J'ai eu une erreur en essayant d'installer sbt pour créer un environnement de développement Scala
"Professeur, je souhaite implémenter une fonction de connexion au printemps" ① Hello World
Dans WSL2, quand j'ai fait `docker-compose up`, j'ai eu une erreur disant que le fichier sh n'a pas été trouvé.