编译错误 - 包不存在 - Java

Posted

技术标签:

【中文标题】编译错误 - 包不存在 - Java【英文标题】:Compilation error - package does not exist - Java 【发布时间】:2015-10-07 00:05:49 【问题描述】:

我的文件结构如下:

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."));
    

我也 added module 1module 2 的依赖列表中。

现在,当我启动 Play-server 时,我没有任何错误。但是,当我打开 URL http://localhost:9000/ 时,我收到错误:编译错误 - 包 my.package.App 不存在

我很困惑。我可以编译我的代码,但我在运行时遇到了麻烦。我有生以来第一次尝试游戏框架。所以,可能我不知道这方面的一些信息。

完整的启动项目命令(来自 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】:

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

(b) 检查您的 Play 应用程序在启动时在类路径中是否有模块 #1 - 请参阅播放框架 dependencies management;

(c) 使用 maven 构建模块 #1(maven guides + google 会有所帮助);

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

【讨论】:

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

以上是关于编译错误 - 包不存在 - Java的主要内容,如果未能解决你的问题,请参考以下文章

为啥编译时库模块中的包不存在,即使 Android Studio 显示代码中没有错误?

java 提示包不存在

编译时本地jar包不存在

程序包java.time不存在

Jar存在于本地Maven仓库中,但仍然编译错误“包不存在”

idea编译时出现错误:xx包不存在,但是代码里面不报错