好的,我正在制作一个Java程序,我有以下目录设置:
- MyProgramme
| __发动机
| ______ utils
| __________ Important.java
|
| __ src
| ______主要
| __________ MainApp.java
在MainApp.java中我有一个import语句:
import Engine.utils.Important;
我也试过
import utils.Important;
无济于事。 我错过了什么蠢事吗?为什么我无法从MainApp导入重要内容?
我正在运行Windows 10,cmd java -version返回以下内容:
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
由于
快速编辑:还尝试了MyProgramme.Engine.utils.Important; 第二次编辑:我得到的错误是java:package Engine不存在
答案 0 :(得分:2)
由于您只是初学者,请将utils文件夹移至src。
然后将其用作import utils.Smth;
,你应该没问题。
还考虑使用一些开发编辑器。例如IntelliJ,Eclipse或NetBeans。 导入项目,你会没事的:) 手动玩类路径对你来说不是一个好主意。
您现在可能需要在项目中实现模块化,但是您不知道如何正确使用包。阅读。
如果你已经知道所有这些东西,你应该阅读gradle或maven。简而言之,这些工具将多个项目合二为一。但是在项目的早期阶段,这将是一个主要的过度工程,并导致开发的巨大开销。
答案 1 :(得分:0)
如果你的类路径设置正确,你的第一个(import Engine.utils.Important;
)就可以了。您需要确保类路径包含Engine
目录的父级和main
目录的父级(假设您的Main
类位于包main
中,而不是{ {1}},这很奇怪。
如果您的层次结构的顶级为src.main
,请确保您的类路径包含~/temp
和~/temp
。例如,这很好用:
javac -cp ~/temp:~/temp/src src/main/Main.java
或者在Windows上,如果您假设您的基本目录是~/temp/src
,那么:
javac -cp C:\temp;C:\temp\src src\main\Main.java
以上假设C:\Temp
有
Important.java
且package Engine.utils;
已
Main.java
旁注:Java中压倒性的约定是包名全部小写。所以package main;
而不是engine
。