由于已经习惯了在Windows环境中进行开发,最近在尝试将开发环境转移到Linux上面。遇到一篇值得参考的外文,特翻译记录一下。【只翻译了部分】
一直被集成开发环境和自动构建工具“溺爱”着,我最近意识到我居然一点儿都不会在命令行模式下去运行Java代码。我花五分钟时间写了一段代码,花费很久时间去编译。我想是时候做一点儿研究了。
任务:一个相对标准的Java工程,将包含这样3个顶层文件夹
/bin:空文件夹,将会包含编译之后的.class文件
/lib:包含第三方的jar包
/src:包含.java源文件
我们的任务是在此工程的根文件夹下,编译与运行此工程。我们将以windows操作系统为例来进行说明。(在Unix系统环境中,与windows仅仅存在分隔符的差异,Unix中是以冒号:作分隔符,Windows中以分号;作分隔符)
编译java代码
第一步是将普通文本.java源程序编译为java字节代码(.class文件),使用javac命令来完成。假设我们在此工程的根文件夹下,将尝试将Application.java编译到bin文件夹中,并且Application.java是位于com.example包中的,它也用到了lib文件夹下的lib1.jar与lib2.jar文件,编译命令如下:
javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java
编译成功之后,bin/com/example/Application.class文件将被创建。如果Application.java用到了工程中的其他类,它们也将会被自动编译并且输出到对应的文件夹。
运行java代码
使用java命令去运行我们刚刚编译得到的.class文件。假设我们在此工程的根文件夹下,将运行Application.java,其Application.java是位于com.example包中的,它也用到了lib文件夹下的lib1.jar与lib2.jar文件,运行命令如下:
java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application
注意到,这里我们并没有使用文件名,仅仅是类名,基于提供的路径下,java可以找到类对应的文件。
原文:
http://www.sergiy.ca/how-to-compile-and-launch-java-code-from-command-line/