Java类依赖, "import"如何在文件系统中找到该类

标签 java jsp import path

伙计们,我面临着一个基本但棘手的问题。

最近在学习JSP。

众所周知,“import”语句帮助java程序在系统java库或您自己的文件中查找类。

这是一个例子来说明我的问题:想象有一些问题,我将在当天晚些时候上传。

假设我的路径中有 App.java

$main/com/sub

,在IDE中它属于com.sub包; 我在路径中有另一个 useApp.java

$main/com

,它将与包 com. 现在如果useApp.java需要导入App.class。正如我的教科书所说,手动导入java类的方法是将.class文件放在src目录的子目录中。这样App.class应该是位于

$main/com/com/sub/App.class

这很奇怪,不是吗。这是我首先使用的结构。现在我知道以这种方式组织不同的类是很糟糕的。那么有没有任何约定的方式来组织你自己的文件的依赖项。我应该这样做吗?一般配置项目的.classpath文件吗?

我尝试使用.classpath文件。获取了useApp.class文件集。并尝试在jsp文件使用中调用它 <%@ page import="fullclassname"%>并不断收到错误“无法解析为类型”。

最佳答案

类路径并不像乍看起来那么简单。特别是 Web 应用程序和使用插件机制的应用程序使用不同的类加载器,这可能会令人困惑。

类加载器

一个好的起点是阅读一些有关类加载器的内容: https://www.baeldung.com/java-classloaders 这将以整体 Java 方式回答“导入将找到文件”的问题。

调试类加载

如果您在调试应用程序时需要“查找文件”,则可以使用 -verbose 选项(也在 IDE 中,通常称为启动配置或类似选项)启动 Java 应用程序。

java -verbose HelloWorld

https://www.ibm.com/support/pages/using-java-verbose-option-determine-where-jdbc-driver-classes-are-loading https://dzone.com/articles/how-use-verbose-options-java

标准化项目结构

此外,还有一些热衷于构建 Java 项目结构的标准。 Maven 是这里的早期统治者之一。因此,对于初学者来说,采用标准的 MAVEN 项目结构可能不是一个坏主意。 https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

my-app
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- mycompany
    |               `-- app
    |                   `-- App.java
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java



关于Java类依赖, "import"如何在文件系统中找到该类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62352222/

相关文章:

java - 删除 JSP 中的死代码

java - 从数据库中获取记录 Java

java - 为什么 jsp 的静态部分在 java 部分之后进行流式传输?

python - 无法在脚本中导入 python 模块,但可以在命令提示符中导入

android - 导入 com.google.android.gms 无法解析

python - 从Python中的不同目录导入同名文件?

java - 在无限循环中使用 BufferedWriter

java - prunsrv.exe 是否使用多个线程将 Java 应用程序作为服务运行?

java - 轻松将元素添加到可变参数列表

java - Play Framework CompilationException