javac 使用总结

先给出参考的两个链接,然后再总结:



内容:使用javac 指定编译多个目录下java文件

链接:http://zhidao.baidu.com/link?url=W5ZERu8_ouGD-L_JH0vqqawhJNitsGbonQAATedyFZVEo0GqB1yRdb3QCJba3fAy7AiBSDciBurr1iT4kHCKH1szrA3e1u1IwlF_5iwlCbm

概要:目录结构——project;

           project/src/com/package1/a.java;  

         project/src/com/package2/b.java;

           project/class/      //作为类的输出目录

           project/sourceList.txt  //sourceList.txt位源文件列表文件,存放要编译的类的相对路径,如:src/com/package1/a.java

                      //  javac命令只会一行一行地读取其中的记录,作为一个单位进行类编译。

         project/lib/jxl.jar        //外用库

  sourceList.txt内容—— src/com/package1/a.java  //(或project\src\package1\a.java;)

              src/com/package2/b.java

  在project 目录下执行——javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d class



内容:如何用javac 和java 编译运行整个Java工程

链接:http://blog.csdn.net/huagong_adu/article/details/6929817

概要:本文教你怎么用javac和java命令,以及如何利用脚本(shell或bat)方便处理,并用简单的实例展示这些用法。(主要是linux系统下的操作)

(指错:该文章说“windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;” 而我自己测试后则是:windows 7 下文件路径分隔符用 [space 空格],文件列表分隔符用 [回车])


javac使用总结:

使用上面文件目录结构来说明

(其中package1 的a.java 有导入packge2 的b.java 所生成的类 b.class

  a.java 内容——  package com.package1;

          import com.package2.b;

          ......

  b.java 内容—— package com.package2;

          ......

生成工程文件的三个方法如下:

1、cd 进入工程目录,依次执行

javac -sourcepath src src/com/package2/*.java -d class

javac -sourcepath src src/com/package1/*.java -d class -class -classpath class

这个方法比较繁琐,如果有较多的包,得执行多个语句,而且还会存在错误:找不到软件包。

只有先把没有被引用导入的类先编译后,再编译引用它的那个类才能够顺利编译(也就是说如果以上两句如果顺序调换一下,第一行就执行不了了)

同时还要注意:有导入别的包的那个类,在编译时要给出具体的classpath ,在这里 编译后的类放在 class 目录下,所以用-classpath class

以下两个方法无需考虑顺序,只要把涉及的文件都写及到就可以

2、cd 进入工程目录,javac -sourcepath src @sourcelist.txt -d class

  (该方法必须将所有文件的具体相对路径一个一个写入sourcelist.txt(上面有提到这个列表的文件),不知道可不可以用通配符*)

1、cd 进入工程目录,javac -sourcepath src src/com/package1/*.java src/com/package2/*.java -d class

  (该方法直接指定所有源文件路径,以空格隔开(在Windows 7 下已测,可行),可以使用通配符*)

时间: 2024-11-10 20:56:04

javac 使用总结的相关文章

javac编译 编码GBK的不可映射字符

使用命令行javac命令编译java文件, 提示错误:编码GBK的不可映射字符. 在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操作系统默认采用的编码格式. JDK根据操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),把源程序从默认编码格式转化为JDK内部默认的UNICODE格式放入内存中.然后把转换后的unicode格式的文件进行编译成.class类文件,此时.cl

【javac】错误:编码GBK的不可映射字符

错误现象: 由于JDK是国际版的,我们在用javac.exe编译时,编译程序首先会获得我们操作系统默认采用的编码格式(也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中.然后,javac.exe把转换后的UNICODE格式的文件进行编译成.cl

javac 编译命令的使用

工作中需要增量打包脚本,基本要求是从SVN服务器上download下java源码包,然后编译后,增量打包进application.jar.现在叙述一下我写脚本过程中不太熟悉的两个命令. 1. 从SVN服务器上下载源码包的命令:svn export --username  xiaopuser --password xiaoppass http://svnpath/project 2.在命令行下编译java文件的命令:javac  -Xlint   -classpath  lib/fr-xx-8.0

Java和Javac的使用时总提示找不到类模块的解决方案

1.场景: 争对网上的很多文章中javac编译与java运行的文章,有很多不明确的地方,使得在合适时发现很多坑.这里给大家作下简介. 2.Javac的使用注意: javac -d ./ ./InstallCert.java 其中-d表示要编译到哪里,加-d的目地是让后面加的java文件编译后,可以产生由package名称所确定的文件夹结构下的class文件.这样再运行java去执行时,就不会提示找不到类模块了. 3.Java的使用注意: java -classpath ./;c:\mylib.j

win10系统-javac不是内部或外部命令

给笔记本装了一个ssd,上午装的系统,重新搞jdk,设置JAVA_HOME之后,cmd运行Javac报 "javac不是内部或外部命令"各种懵逼,试了好几次才发现Path路径里面不能用%JAVA_HOME% 这类的相对路径,必须用绝对路径,必须用绝对路径,必须用绝对路径 重要的实行说三遍!!!

javac找不到或无法加载主类 com.sun.tools.javac.Main,

javac找不到或无法加载主类 com.sun.tools.javac.Main ecplise在配置jdk时,1(要选择jdk的那层目录D:\JDK\jdk_64\jdk,不要选择jre的那层),2(这个错误有有可能是环境变量的问题,还有可能是你的工程中确实没有tools这个包)我原因就是工程没有这个包,因为这个包是jdk自带的包,所以我就认为这个包不需要手动添加.最后测试,这个包是要手动添加到工程中的. 去掉不用的工作空间 1.去掉不用的工作空间Eclipse中,有些workspace不再使

java安装jdk时,执行javac出错

进来学习maven,在机器重新配置一套jdk, 卸载掉1.6,安装1.7是报javac不是有效的命令,java,java -version 都没问题.这个问题一直困扰了我好久,之间1.6也是这个问题,找解决方法,找了好久,今天装1.7依然如此,找的我快要疯了,以为是电脑系统的问题,准备明天重装系统了.在安装好maven ,输入mvn -version 是报jkd 的 JAVA_HOME安装有问题,很郁闷,结果一看,原来我一值是JAVA_HOME配置,配置的路径有点深入. 错误的JAVA_HOME

javac编译项目代码脚本片段

java -cp ".;.\ojdbc6.jar;WEB-INF\lib\commons-dbcp2-2.0.1.jar" TestJDBCjava -cp ".\classes;lib\*.jar" com.DH.M javac -classpath WEB-INF/classes -d WEB-INF/classes -sourcepath src/com/DH/PowerInfo.java javac -d WEB-INF/classes -sourcepat

用javac编译servlet类出现问题

本人写了一个关于servlet的webapp,但是在用javac编译的时候,只是单纯的将jsp-api.jar和servlet-api.jar拷贝放在了其目录下面,然后利用命令行 javac XXX.java开始编译,然后出现了一大堆错误,如下: FirstServlet.java:7: 错误: 找不到符号public class FirstServlet extends HttpServlet ^ 符号: 类 HttpServletFirstServlet.java:9: 错误: 找不到符号

javac: 目标发行版 1.5 与默认的源发行版 1.7 冲突

1.设置jdk环境变量 编译android源码只支持jdk 1.6,所以如果需要编译源码必须下载jdk 1.6,不能下载最新的jdk 1.7,如果不需要编译源码则可以下载1.7版本的. e) 设定默认的JDK $ sudo update-alternatives --config java $ sudo update-alternatives --config javac