编译错误 - 包不存在 - Java

3

我有以下的文件结构:

root-folder
--.idea
--folder1-java-console-application (module 1)
----src
------main/java/my/package/App.java
----pom.xml
--folder2-play-framework-2-ui (module 2)
----app
------controllers
--------Application.java

Application.java 依赖于 my.package.App.java。因此,我像这样导入了这个包:

Application.java:

import my.package.App;

public class Application extends Controller {
    public static Result index() {
        return ok(index.render("Your new application is ready."));
    }
}

同时,我在模块2的依赖列表中添加了模块1

现在,当我启动Play服务器时,没有任何错误。但是,当我打开URLhttp://localhost:9000/时,出现错误:编译错误——找不到my.package.App包

我感到很困惑。我可以编译我的代码,但在运行时遇到了问题。这是我生命中第一次尝试play框架。所以,可能我不知道一些关于它的信息。

从IDEA运行的完整项目启动命令如下:

"C:\Program Files\Java\jdk1.8.0_11\bin\java" -Dfile.encoding=UTF8 -Djline.terminal=none -Dsbt.log.noformat=true -Dsbt.global.base=C:\Users\Mike\AppData\Local\Temp\sbt-global-plugin3stub -Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M -classpath C:\Users\Mike\.IntelliJIdea14\config\plugins\Scala\launcher\sbt-launch.jar xsbt.boot.Boot run
1个回答

2

(a) 检查您的Play应用程序是否可以在没有依赖项的情况下正常工作;

(b) 检查您的Play应用程序在启动时是否已经将模块#1加入类路径 - 请参阅Play框架依赖管理

(c) 使用Maven构建模块#1(可以使用Maven指南和Google进行帮助);

(d) 检查您的模块#1 jar文件中是否包含my/package/App.class文件。


(a) 完成了。 (b) 我不确定Play应用程序是否必须在类路径中具有模块1,因为模块1只是*.java文件。 (c) 没有名为“module”的jar文件,它只是运行时文件夹和*.class文件。 - Denis
你可以从IDE中启动应用程序。控制台中的第一行描述了启动应用程序的完整Java命令。请将其添加到你的问题描述中。 - ursa
看起来你没有使用Maven。在项目设置中>模块#2中,向模块#1添加显式依赖项。 - ursa
我只在模块1中使用Maven。我已经添加了依赖项-http://snag.gy/LEt7n.jpg - Denis
最后一次尝试 - 在Play应用程序中创建lib/文件夹,并将模块#1的jar文件放在此处(请参见步骤b中的链接)。 - ursa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接