when i try to run my Application it gives me following error:
Compilation error
The file /app/models/setting.java could not be compiled. Error raised is : The type Setting is already defined
- 我只有一个文件“Setting.java”,它位于模型目录中
- 文件名为“Setting.java”,而不是错误消息提示的“setting.java”
- 我不包含任何游戏模块
我在 Windows 上运行游戏。有没有可能是 play 有 windows 不区分大小写的问题?所以它会首先尝试编译 models/Setting.java 然后再编译 models/setting.java ??
还有什么可能是造成这种奇怪行为的原因?
/编辑: 因为我在这里写了这个问题,所以我没有在我的 Play 应用程序中编辑任何东西,也没有重新启动它。现在我只是刷新了页面,同样的错误又出现了——但是是另一个模型!!
The file /app/models/staticsite.java could not be compiled. Error raised is : The type Staticsite is already defined
/编辑2: 在浏览器中刷新几次页面后出现此错误:
The file /app/models/setting.java could not be compiled. Error raised is : The public type Setting must be defined in its own file
文件名为“Setting.java”,类名为 Setting
最佳答案
当问题在所提到的类之外时,可以引发“类型已定义”异常。如果您的类名匹配(区分大小写)并且它在自己的文件中定义,那么您的下一步是找出最近更改了哪些引用此类的代码。对我来说,问题是我的文件“utils.Utils.java”已通过“import utils.Utils;”导入到另一个文件中。当我在代码中引用“utils.Utils.someMethod()”时,这真的让编译器感到困惑。我将行更改为“Utils.someMethod()”,异常消失了。
我可能应该想出一个更好的命名方案。 :/
关于compiler-construction - Play Framework 类型 ... 已经定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301490/