Scala giving me "illegal start of definition"

Scala

Scala Problem Overview


I'm trying to get started with Scala and cannot get out of the starting gate.

A file consisting of the line

package x

gives me

> error: illegal start of definition

Regardless of what x is and regardless of where I put the file (I had a theory that I had to place the file in a directory hierarchy to match the package definition, but no). I get the same error with the example code from the web site and with the REPL.

Scala Solutions


Solution 1 - Scala

It looks like you're trying to declare the package membership in a Scala script (run using the scala command) or in the REPL.

Only files defining just classes and objects which are compiled with scalac may be defined as belonging to a package.

When you run code in a script or a REPL session, behind the scenes it is actually compiled inside a method of an object, in which scope a package declaration wouldn't be legal.

Solution 2 - Scala

Since Scala 2.11.0-M7 you can use :paste -raw (fix for issue SI-5299). This option allows defining packages in the REPL:

scala> :paste -raw
// Entering paste mode (ctrl-D to finish)

package Foo

class Bar

// Exiting paste mode, now interpreting.


scala> import Foo._
import Foo._

scala> new Bar
res1: Foo.Bar = Foo.Bar@3ee2cf81

Solution 3 - Scala

I had the same problem. I've resolved it by importing import packageName._ instead of declaring a worksheet in the package.

Solution 4 - Scala

I had the same issue when I was executing scala program eg. "Game.scala" from terminal.

Compiling part was ok, error was shown when running the code, see below

ā˜ Wrong:
user@pc:~$scala Game.scala
/home/$USER/.../src/ul/org/bloxorz/Game.scala:1: error: illegal start of definition
package ul.org.bloxorz

Scala code should be invoked from terminal pretty much the same as Java code (you should give it a fully qualified class name and not the file name like I did in first example)

ā˜‘ Correct:
user@pc:~$scala ul.org.bloxorz.Game

Solution 5 - Scala

I don't get this error. How are you compiling this? And, by the way, what web site? As for REPL, it doesn't accept packages. Packages are only for compiled code.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMichael LortonView Question on Stackoverflow
Solution 1 - ScalaBen JamesView Answer on Stackoverflow
Solution 2 - ScalaqtwoView Answer on Stackoverflow
Solution 3 - ScaladehasiView Answer on Stackoverflow
Solution 4 - ScalaMilan BojovicView Answer on Stackoverflow
Solution 5 - ScalaDaniel C. SobralView Answer on Stackoverflow