java - java从同一个包中的另一个类调用一个类
问题描述
所以我在关注本教程: https ://spring.io/guides/gs/maven/
我为软件克隆了他们的存储库,因为担心输入错误。javac
当我使用编译 Greeter.java然后使用运行 HelloWorld.java 文件时代码不起作用java
它给了我以下错误:
HelloWorld.java:5: error: cannot find symbol
Greeter greeter = new Greeter();
^
symbol: class Greeter
location: class HelloWorld
HelloWorld.java:5: error: cannot find symbol
Greeter greeter = new Greeter();
^
symbol: class Greeter
location: class HelloWorld
2 errors
我尝试使用在没有语句ìmport hello.Greeter
的情况下运行代码时,将 Greeter 显式导入 HelloWorld 中
。package hello;
知道为什么我会收到此错误吗?
所以我按照教程并使用mvn package
命令和生成项目的 jar 文件工作。
尝试在命令行中使用 java 命令编译它的问题也是如此。
添加项目的目录结构
pom.xml src target
./src:
main
./src/main:
java
./src/main/java:
hello
./src/main/java/hello:
Greeter.java HelloWorld.java
解决方案
我假设您在目录中时尝试编译源代码src/test/java/hello
。那是错误的目录,您必须从目录中执行此操作src/test/java
并将目录(即包)传递给编译器,例如
javac hello/*.java
另一个原因可能是你还没有编译Greeter.java
,所以编译器在编译时没有找到类文件Hello.java
。上面的命令应该可以解决这个问题。
如果你在 hello run 中有一个 main 方法
java hello/name-of-file.java
来运行你的 main 方法。
推荐阅读
- python-3.x - 如何使用层次聚类预测新观察的聚类标签?
- excel - Set Word = GetObject(, "Word.Application") 在一个子中有效,但在同一文档的其他子中无效
- android - 在 Android 应用程序上找不到带有预填充数据库表的 React-Native SQLite
- java - LocalStackContainer 集成测试 lambda
- angular - 使用 Azure DevOps 将我的 Angular Universal (SSR) 上传到 Azure 的问题
- r - R googlesheets4 将令牌作为参数传递给 read_sheet
- docker - 带有烧瓶和postgres的容器之间的通信错误
- sql - 使用 TCL 删除变量
- java - 使用 Java Stream API 收集到地图
- javascript - 删除数组中的索引 - React.js