Aidan Goettsch
Aidan Goettsch

Reputation: 75

Scala thinks that "import java.xxx" means "import net.java.xxx"

When trying to compile the following scala classes for an LWJGL test of rendering an OBJ,

package net.y23k.opengltest.shapes

import java.io.File
import java.nio.file.Files
import java.nio.charset.StandardCharsets

/**
 * Created by yayes2 on 4/14/14.
 */
class Obj(file : File) {
  -snip-

}

and

package net.y23k.opengltest

import org.lwjgl.opengl.{DisplayMode, GL11, Display}
import java.awt.event.{WindowEvent, WindowAdapter, ComponentEvent, ComponentAdapter}
import java.awt.{Dimension, Canvas, BorderLayout, Frame}
import net.y23k.opengltest.shapes.Obj
import org.lwjgl.BufferUtils
import java.nio.{IntBuffer, FloatBuffer}

/**
 * Created by yayes2 on 4/5/14.
 */
object Main {
-snip-
  }

maven throws the following error.

[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:4: error: value awt is not a member of package net.java
[INFO] import java.awt.event.{WindowEvent, WindowAdapter, ComponentEvent, ComponentAdapter}
[INFO]             ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:5: error: value awt is not a member of package net.java
[INFO] import java.awt.{Dimension, Canvas, BorderLayout, Frame}
[INFO]             ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:8: error: value nio is not a member of package net.java
[INFO] import java.nio.{IntBuffer, FloatBuffer}
[INFO]             ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:72: error: not found: value closeRequested
[INFO]     while(!Display.isCloseRequested && !closeRequested) {
[INFO]                                         ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:73: error: not found: value newCanvasSize
[INFO]       val newDim : Dimension = newCanvasSize.getAndSet(null)
[INFO]                                ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:99: error: value util is not a member of package org.lwjgl
[INFO]   def v2dtov3d(v2d : org.lwjgl.util.vector.Vector3f) : org.lwjgl.util.vector.Vector2f = {
[INFO]                                                                  ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:99: error: value util is not a member of package org.lwjgl
[INFO]   def v2dtov3d(v2d : org.lwjgl.util.vector.Vector3f) : org.lwjgl.util.vector.Vector2f = {
[INFO]                                ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:107: error: not found: value GLU
[INFO]     GLU.gluProject(x : Float, y : Float, z : Float, modelView, projection, viewport, screenCoords)
[INFO]     ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/Main.scala:108: error: value util is not a member of package org.lwjgl
[INFO]     new org.lwjgl.util.vector.Vector2f(screenCoords.get(0), screenCoords.get(1))
[INFO]                   ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/shapes/Obj.scala:3: error: value io is not a member of package net.java
[INFO] import java.io.File
[INFO]             ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/shapes/Obj.scala:4: error: value nio is not a member of package net.java
[INFO] import java.nio.file.Files
[INFO]             ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/shapes/Obj.scala:5: error: value nio is not a member of package net.java
[INFO] import java.nio.charset.StandardCharsets
[INFO]             ^
[ERROR] /data/Game Dev/OpenGL-Test/src/main/java/net/y23k/opengltest/shapes/Obj.scala:17: error: not found: value v
[INFO]     if (line.charAt(1).equals(v)) {
[INFO]                               ^
[ERROR] 13 errors found

From what I can tell, maven thinks that because my package starts with a "net.", the "java" package is in the "net." namespace.

P.S: Ignore the other errors, I'm just looking for an answer for the ones I just talked about

Upvotes: 1

Views: 2419

Answers (1)

Siphor
Siphor

Reputation: 2544

Prepend "_root_." to your imports ( post explaining scala import)

Upvotes: 2

Related Questions