在Java中使用命令行编译和运行多个包
我一直在使用IDE,但现在,为了准备1Z0-803考试,我需要从命令行运行和编译。问题是,我有多个软件包,我试图找到答案,但迄今为止没有任何效果 因此,我:在Java中使用命令行编译和运行多个包,java,command-line,Java,Command Line,我一直在使用IDE,但现在,为了准备1Z0-803考试,我需要从命令行运行和编译。问题是,我有多个软件包,我试图找到答案,但迄今为止没有任何效果 因此,我: package com.oca.tutorial; import com.oca.tutorial.planets.Earth; import com.oca.tutorial.planets.Mars; import com.oca.tutorial.planets.Venus; public class GreetingUniver
package com.oca.tutorial;
import com.oca.tutorial.planets.Earth;
import com.oca.tutorial.planets.Mars;
import com.oca.tutorial.planets.Venus;
public class GreetingUniverse {
public static void main(String[] args) {
System.out.println("greetings universe");
new Earth();
new Mars();
new Venus();
}
}
金星级:
package com.oca.tutorial.planets;
public class Venus {
public Venus() {
System.out.println("Hello from Venus");
}
}
火星级
package com.oca.tutorial.planets;
public class Mars {
public Mars (){
System.out.println("Hello from Mars");
}
}
还有我的地球课
package com.oca.tutorial.planets;
public class Earth {
public Earth (){
System.out.println("Hello from earth");
}
}
命令行+错误
预期产出:
greetings universe
Hello from earth
Hello from Mars
Hello from Venus
行星的场结构:
C:\OCA\com\oca\tutorial\planets
主迎宾区的现场结构:
C:\OCA\GreetingUniverse
来自命令提示符的错误消息:
确保编译器可以找到所有文件。转到包含
com
文件夹的目录并使用:
javac -d classes com\oca\tutorial\GreetingUniverse.java
或者干脆
javac -d classes com\oca\tutorial\*.java
使用此文件结构
com
|-oca
|-tutorial
| GreetingUniverse.java
|-planets
Earth.java
Mars.Java
Venus.java
编译时,您需要位于
C:\OCA
中。首先,您可以将cd刻录到com/所在的基本目录。那么
javac-d-bin-com\oca\tutorial\*.java-com\oca\tutorial\planets\*.java
编辑:
正如上面的海报所说(并发现),您的文件结构是错误的。如果在包
com.oca.tutorial
中有类GreetingUniverse,那么文件路径应该是com\oca\tutorial\GreetingUniverse.java。请注意,您为每个类声明了包GreetingUniverse
在com.oca.tutorial
包中,而Venus
、Mars
和Earth
在com.oca.tutorial.planets
包中。Java要求.Java文件位于镜像其包名的目录中。例如,GreetingUniverse.java
需要位于名为com\oca\tutorial
的子目录中。此子目录可以位于当前用于编译的OCA
目录中
如果将.java文件移动到正确的目录后仍然出现类似错误,请尝试在同一命令行中包含每个类的所有.java文件。我已经很久没有从命令行编译大型ish项目了。据我记忆所及,这不应该是必要的,但肯定值得一试
编辑:
为了澄清,以下是目录结构的设置方式:
C:+--OCA
+--com
+--oca
+--教程
--GreetingUniverse.java
+--行星
--Earth.java
--Mars.java
--Venus.java 现在运行以下命令: C:\OCA>javac com/OCA/tutorial/GreetingUniverse.java
您的问题以“命令行+错误”结尾,但您没有说明您尝试了什么以及错误是什么。你能添加这个吗?你的
OCA
目录下的文件结构是什么?@brettjonesdev下面有一个屏幕截图,你可能出于某种原因没有看到它。通过单击左上角的图标,可以从Windows命令提示符复制和粘贴。在这里寻求帮助时,这比屏幕截图更可取,因为你可以提供所有错误。@Steve啊,明白了。愚蠢的过滤互联网…@Rahoul请记住对任何有用的答案进行投票,然后单击复选标记以接受对您最有帮助的答案。祝你的Java好运!我刚刚尝试将GreetingUniverse.java移到com\oca\tutorial,路径与com.oca.tutorial.planets相同,但是。。。请看新的screenshot@Rahoul您需要从C:\OCA
编译,并提供要编译的.java文件的相对路径(例如javac com/OCA/tutorial/GreetingUniverse.java
。不要cd到子目录,因为javac
将无法找到其他.java文件。@Rahoul怎么办“不工作意味着什么"?如果您提供有关最近尝试的更多信息,我很高兴继续为您提供帮助。我将尝试此方法。请稍等。如果输出类文件不存在classes文件夹,您将需要创建一个classes文件夹这正是我文件夹OCA folder中的结构。在执行compi时,您需要位于C:\OCA
激化