我是一个相对的Java新手,所以如果问题似乎有点基本的道歉。我在这里搜索答案的高低,我没有找到任何有用的东西。如何在包含外部java包的情况下在命令行上编译我的主Java程序?
问题:
虽然我能够外部包集成到从IDE环境中我的Java程序,我试图做从运行在一个独立的,基本包调用命令行一个非常基本的程序这是我编写的文件 - 我只是在做这一切,因为我想对Java程序包与主程序的关系有一个自下而上的理解。
我有我的桌面上一个名为MyProgram.java坐在一个程序:
import org.somepackage;
public class MyProgram {
public static void main(String arguments[]) {
System.out.println("Programme up and running...");
Human myHuman = new Human();
myHuman.scream();
}
仍然在桌面上,然后我有我命名SRC另一个文件夹,在其内部的我已创建对应于包名必要的子文件夹,即./src/org/somepackage - 和在该位置上,我有包含以下内容定义了人类类Human.java文件:
package org.somepackage;
public class Human {
public void scream() {
System.out.println("I exist!!");
}
}
我然后在桌面上创建一个文件夹类,又和在命令行中运行以下编译命令:
javac -d ./classes/ ./src/org/packagename/Human.java
这种运行良好和创造的 - 如预期 - 内的Human.class文件./ classes/org/packagename/location。
然而,当我倒下是当我再尝试编译MyProgram.java在命令行上,即
javac -cp ".:./classes/" MyProgram.java
正如你所看到的,我的类路径中包含了对当前位置的引用( (“。”),它包含对类文件夹(“./classes/”)的引用,它是org.somepackage包的子文件夹的基本位置(./ classes/org/somepackage/)可以找到Human.class文件。
在这个阶段,我只是期待Java引擎编译MyProgram.java到程序MyProgram.class - 但是,相反,我得到一个错误:
MyProgram.java:1:错误:包组织不存在
我一直在关注这里列出的说明:
https://www3.ntu.edu.sg/home/ehchua/programming/java/J9c_PackageClasspath.html
,我似乎没有偏离说明 - 但我无法找到关于Stackoverflow或其他任何地方的解释,说明编译失败的可能原因。如果有人有一个想法,你的帮助将非常感激。
感谢,
我的第一篇运行MyProgram ,在提交问题几分钟后,我就解决了我的问题 - 谢谢你真是太棒了!代码现在正在工作... – GoingMush
@GoingMush好问题包含一半的答案。当您的所有代码都有效时,根据网站规则将答案标记为已接受。 – fxrbfg