Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ为什么说:包安全不存在?_Java_Playframework - Fatal编程技术网

Java IntelliJ为什么说:包安全不存在?

Java IntelliJ为什么说:包安全不存在?,java,playframework,Java,Playframework,我已使用Google groups上的以下帖子中的说明,将Play Framework 1.2.1项目设置为在IntelliJ中运行: 但是,在上的教程之后,我从IDE中得到以下错误: /Library/WebServer/Documents/devschool.play/app/controllers/Security.java package Secure does not exist /Library/WebServer/Documents/devschool.play/app/cont

我已使用Google groups上的以下帖子中的说明,将Play Framework 1.2.1项目设置为在IntelliJ中运行:

但是,在上的教程之后,我从IDE中得到以下错误:

/Library/WebServer/Documents/devschool.play/app/controllers/Security.java
package Secure does not exist
/Library/WebServer/Documents/devschool.play/app/controllers/Application.java
cannot find symbol class Secure
当我使用>play run运行应用程序时,一切正常,但我更喜欢从IDE运行它。请注意,在我添加安全模块之前,该项目在IDE中运行得非常好

有办法解决这个问题吗?我有一种预感,这与外部源代码有关,但作为一名Java专家,我不完全确定如何做到这一点


有人能帮忙吗?

从您发布的第二个链接中,有一个名为
安全性的类,它看起来像这样:

public class Security extends Secure.Security {

    static boolean authenticate(String username, String password) {
        return true;
    }

}

Security
扩展了
Secure.Security
,它是
Security
包中另一个名为
Security
的类。此错误表示找不到包
Secure
。确保您正确地包含了类路径中的所有内容。

好的,在取消选中“编辑配置”对话框中的“生成”复选框后,项目可以编译并运行


要让IDE找到代码,只需附加源代码。在Mac上,按Command+;并在“库”部分下添加源

确保在将模块添加到dependencies.yml或将dependencies添加到application.conf(顺便提一下,它已被弃用)之后运行play idealize

您应该运行以下命令:

play dependencies play idealize 播放依赖项 游戏理想化 第一个将解析来自安全模块的依赖项。
第二个将更新IntelliJ“classpath”,有关安全模块的红线/错误将消失。

在application.conf中添加模块已被弃用,不应再使用。而是使用dependencies.yml和add

- play -> secure
现在我的dependencies.yml看起来像:

# Application dependencies

require:
    - play
    - play -> secure
然后我跑:

play dependencies
play idealize
虽然有一个延迟,但Intellij最终识别出了模块。不确定最后的命令是否必要


(从播放教程的相关页面重新发布Sascha Kleiber的答案:)

当在“编辑配置”对话框的“启动前”面板中取消选中“Make”时,项目以运行和调试模式运行,没有任何问题。然而,IDE仍然在@With(Secure.class)中用红色下划线,表示它“无法解析符号Secure”。如何让它们消失?对我来说,这个答案最有意义:嗯,当我第一次开始在play中使用IntelliJ时,我运行了play idealize!,从未意识到在模块更改后需要再次运行它。