我正在使用Eclipse&在window7平台上的Tomcat7,我也在eclipse中配置了项目。通常我们使用CMD运行单个java文件。 但我想通过命令提示符编译并运行整个java代码。 我在单个src文件夹中有很多结构,如E:\ proj \ src \ com \ mycode.Inside mycode文件夹中有7个子文件夹可用&每个子文件夹都有许多.java文件和内子文件夹。 例如: E:\凸出的\ src \ COM \ mycode的\ DTO \ mail.java,E:\凸出的\ src \ COM \ mycode的\ DTO \ sms.java E:\ PROJ \ SRC \ COM \ mycode的\ DTO \安全\ securityFile.java
以上相同的模式其他文件夹都有java文件。所以我需要编译&运行整个java文件,包括子文件夹&内部子文件夹使用COMMAND PROMPT。
提前感谢,
答案 0 :(得分:1)
我会对你的代码的结构做出一些(希望是相当安全的)假设:
com.mycode.dto.Main
),com.foo.Bar
位于E:\proj\src\com\foo\Bar.java
)。在这种情况下,你可以这样做:
javac -d <destination> -sourcepath E:\proj\src E:\proj\src\com\mycode\dto\Main.java
然后编译器将自动遍历文件依赖项并将类文件输出到destination
。
答案 1 :(得分:0)
尝试使用通配符:
javac *.java
您可以根据需要使用各种参数,这些参数可以与javac一起使用:
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
-processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process
-processorpath <path> Specify where to find annotation processors
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system
答案 2 :(得分:0)
如果您在多个分层目录中有源,则可以使用ant。
在项目目录的根目录中创建build.xml文件。
<project name="MyProject" default="dist" basedir=".">
<description>
simple example build file
</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile"
description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
</target>
<target name="clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
在你的机器上安装ant,确保你的路径中有bin目录,然后就可以运行
了ant -f build.xml
当然这只是一个起点(ant提供了一些有趣的选项,让您微调构建/打包的所有方面)。
示例build.xml文件取自here