[英]Running java project from command line
我正在尝试从命令行运行我的java项目。我有2个看起来像这样的软件包
src/catalog1/MainClass - class with main program(he accesses 3 classes below)
src/catalog2/Class1 -
src/catalog2/Class2 - Three classes that main program uses
src/catalog2/Class3 -
我应该先编译该项目然后再运行它吗?在尝试使用javac编译主程序然后通过java命令运行该程序之前,我没有使用cmd,但是它没有用,这是它找不到Class1的错误,等级2,Class3中。
您应该像这样一次编译所有类:
javac *.java
如果您使用Mac,请按以下步骤进行操作。
创建一个Makefile。 将其另存为Makefile
。
JAVA_HOME=`/usr/libexec/java_home -v 1.6`
all: Class1.java Class2.java Class3.java Class4.java
${JAVA_HOME}/bin/javac *.java
clean:
rm *.class
然后创建一个shell脚本。 将其另存为program.sh
JAVA_HOME=`/usr/libexec/java_home -v 1.6`
${JAVA_HOME}/bin/java MainClass
然后运行chmod +x program.sh
在您的终端运行中:
make
./program.sh
您可以在任何地方使用javac
来编译代码,但是用java
运行它是一个稍微不同的故事。
指定给java
类名称必须是完全限定的(包括软件包名称),并且软件包结构直接与您的目录结构绑定。
因此,在您的情况下,假设您具有package catalog1;
在MainClass
的顶部,并package catalog2;
在“ catalog2”中源文件顶部,则必须从“ src /”目录(或catalog[12]/*.class
文件所在的根目录)中运行程序,如下所示:
java catalog1.MainClass
基本上,对于包abc
名为Program
的类,必须满足以下所有条件:
Program.java
必须指定package abc;
Program.java
必须位于<source>/a/b/c/Program.java
Program.class
必须位于<bin>/a/b/c/Program.class
(如果 和 在同一个地方)。 java abcProgram
来运行它,并且它必须从包含a/b/c/Program.class
的根目录中完成(更准确地说, abcProgram
必须在类路径中,但是类路径中包含一个隐含的“。 “ 默认)。 我强烈推荐本教程 。 它简洁明了,编写精巧,遍历了在包中创建,编译和使用代码的来龙去脉。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.