繁体   English   中英

从命令行运行Java项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM