你好,我一直在使用集成开发环境 (IDE),但现在我需要从命令行运行和编译代码。
问题是我有多个包,我已经尝试了很多方法,但都没有成功。
所以我现在遇到了困难。
src/
Support/ (.java files)
Me/ (.java files)
Wrapers/ (.java files)
你知道如何使用javac编译所有内容吗?
你好,我一直在使用集成开发环境 (IDE),但现在我需要从命令行运行和编译代码。
问题是我有多个包,我已经尝试了很多方法,但都没有成功。
所以我现在遇到了困难。
src/
Support/ (.java files)
Me/ (.java files)
Wrapers/ (.java files)
你知道如何使用javac编译所有内容吗?
这应该可以解决问题(可能需要通过-cp
命令行开关添加额外的classpath元素):
javac Support/*.java Me/*.java Wrapers/*.java
但是如果您的构建过程变得更加复杂(这是肯定会发生的!),您应该考虑使用Apache Ant进行构建自动化。
javac -d compiled $(find src -name *.java)
-sourcepath src
。或者你需要将 src
目录作为类路径的一部分来指定。 - Ken Bloomfind src -name \*.java -print0 | xargs -0 javac -d classes
编译运行以下命令[它将把所有的类文件存储在classes文件夹中]
javac -d classes Support/*.java Me/*.java Wrapers/*.java
**注意:应先创建classes文件夹
要运行Java应用程序,请运行以下命令
java -cp classes {mainfile_name}
将mainfile_name替换为您的主文件。
是您编译后的类文件存储的位置 是包名或其路径
<package_name>/*.java
你可以一次添加多个包,使用这个语法,用空格分隔。@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
java
工具期望的是 类名,而不是文件名,尤其不是源文件名。你可能需要执行类似java Wrapers.Wrapper
的操作,假设你有一个名为 "Wrapper" 的类在 "Wrapers" 包中。 - Michael Borgwardt