[英]Compiling multiple packages using the command line in Java with external Jars
[英]Compiling multiple packages using the command line in Java
嗨,我一直在使用 IDE,但现在我需要从命令行运行和编译。
问题是我有多个包,我试图找到答案,但没有任何效果。
所以我有
src/
Support/ (.java files)
Me/ (.java files)
Wrapers/ (.java files)
你知道如何用 javac 编译所有东西吗?
这应该可以做到(可能需要通过-cp
命令行开关添加额外的类路径元素):
javac Support/*.java Me/*.java Wrapers/*.java
但是,如果您的构建过程变得更加复杂(并且会变得更加复杂!),您应该考虑使用Apache Ant进行构建自动化。
javac -d compiled $(find src -name *.java)
真正的答案是 javac -d(要构建和放置类的地方)-sourcepath(根目录下的包源)-cp(依赖项的类路径,它可以再次是构建和保存类的类文件夹)full java 文件的限定名称。
例如 javac -d classes -sourcepath src -cp classes src\\com\\test\\FirstSample.java
FirstSample.java 包含主要方法。 下面提到的包结构。
编译前
家庭应用程序
--src
------com\\test\\FirstSample.java(使用 FirstPojo.java 的第一个样本)
------com\\test\\FirstPojo.java
--类
编译后
家庭应用程序
--src
------com\\test\\FirstSample.java(FirstSample.java 使用 FirstPojo.java)
------com\\test\\FirstPojo.java
--类
------com\\test\\FirstSample.class(FirstSample.class 使用 FirstPojo.class)
------com\\test\\FirstPojo.class
如果您真的只需要使用 javac 和标准 UNIX 命令,您可以这样做:
find src -name \*.java -print0 | xargs -0 javac -d classes
在许多情况下,Ant 是矫枉过正的。 如果您在 Windows 中,只需使用 BAT 文件,如果您在 linux 中,则使用 shell 脚本(sh 文件)。 您可以创建一个包含所有 javac 命令的文本文件,并在您想要构建时运行该文件。
例如,我使用以下 bat 文件来构建我的应用程序之一:
@echo off
echo Building Shazaam...
del classes\com\aepryus\shazaam\*.* /q
del classes\com\aepryus\shazaam\engine\*.* /q
del classes\com\aepryus\shazaam\domain\*.* /q
del classes\com\aepryus\shazaam\persist\*.* /q
del classes\com\aepryus\shazaam\view\*.* /q
del classes\com\aepryus\shazaam\task\*.* /q
del classes\com\aepryus\shazaam\action\*.* /q
del classes\com\aepryus\shazaam\controller\*.* /q
javac src\com\aepryus\shazaam\*.java -classpath \lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar; -d classes
javac src\com\aepryus\shazaam\engine\*.java -classpath \lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\domain\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\persist\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\view\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\task\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\action\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\controller\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepRPC.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
cd classes
jar cf ..\war\WEB-INF\lib\Shazaam.jar .
cd..
echo Complete
编译运行下面的命令[它将所有类文件存储在类文件夹中]
javac -d classes Support/*.java Me/*.java Wrapers/*.java
**注意:应首先创建类文件夹
要运行 java 应用程序,请运行以下命令
java -cp classes {mainfile_name}
将 mainfile_name 替换为您的主文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.