无法导入Java类与PlayFramework

问题描述:

我工作的一个PlayFramework MVC的Java应用程序,但是当我做import models.Board;我得到一个编译错误说:无法导入Java类与PlayFramework

error: cannot find symbol 
[error] import models.Board; 
[error]   ^
[error] (compile:compileIncremental) javac returned nonzero exit code 

我已经通过与此相关的所有问题*上了错误,但他们都没有解决我的问题。这是我的Application.java以下相关代码:

package controllers; 

import models.Board; 

import play.mvc.*; 
import views.html.*; 

public class Application extends Controller { 

    Board board; 

    public Result index() { 
     return ok(index.render("Your new application is ready.")); 
    } 
} 

这里是我的build.sbt

name := """AI-tic-tac-toe""" 

version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayJava) 

crossPaths := false 
autoScalaLibrary := false 

scalaVersion := "2.11.7" 

libraryDependencies ++= Seq(
    javaJdbc, 
    cache, 
    javaWs 
) 

该文件位于控制器文件夹,Board.java位于模型文件夹中,两者的这些文件夹位于同一个应用文件夹中。任何帮助,为什么这个错误发生将不胜感激。

这是我的目标目录:

target directory screenshot

+0

你能告诉我们你的'build.sbt'吗? – Martijn

+1

此外,请尝试如果问题仍然存在'sbt清洁运行'后。 Intellij有时会感到困惑,SBT更准确。如果SBT也出现错误,您可以发布输出吗? – Martijn

+0

好吧,我跑了命令,并得到了'[错误] {file:/ usr/bin /} default-cf1fd7/compile:run:没有检测到主类。“但是我运行了命令从我的usr/bin,因为那是sbt是,我是否需要在我的PlayFramework文件夹中运行它? – easiestripes

想通了我的问题,当然这是最简单的事情。我会发布我所做的,以防万一遇到类似的问题。

所以最终结果是我没有把package models;放在我的Board.java文件的顶部。不幸的是,Play并没有给出类似的更好的错误信息。