Android 开发基础 使用 javac 打成 class 文件的问题

曾晖斌 · 2016年02月19日 · 最后由 曾晖斌 回复于 2016年02月22日 · 1588 次阅读

看到公司项目全是在 IDE 打包,最近事情没有那么多,试试下自动化脚本打包吧,结果刚刚试了下就出现这个问题,不知道怎么解决
javac 编译.java 文件的时候,报找不到符号
查询的结果是因为 javac 编译 java 文件也是要有顺序的,所以在调用一些别的类文件就出现找不到类的情况了,
javac 的代码如下,这里写的 *.java 只是一个目录下的所有 java,肯定有问题

e:\Android\trunk>javac -encoding UTF-8 -target 1.8 -bootclasspath xx\sdk\platforms\android-19\android.jar -d .\bi
n src\com\XX\XX\*.java gen\com\XX\XX\R.java

项目的目录结构如下,

查了挺多资料也没有看到说 javac 可以一次编译不同目录的 java 文件的方法

问题

大家如果不使用编译工具 怎么使用 javac 在一个多目录的工程编译那么的 java 文件啊

共收到 4 条回复 时间 点赞

用 maven 或者 gradle 打包工具吧

提问,应该把报错信息完整的贴出来;根据你粘的命令和 “javac 编译.java 文件的时候,报找不到符号”; 可能的原因是你没指定依赖的 jar 包,代码里 import 时,没有该 class, 代码里又使用了该 class 中的方法等,就报 包 *** 不存在 和 找不到符号。
正确的方式:

javac -classpath /path1/a.jar:/path2/b.jar:/path3/c.jar -d class src/com/yourpath/http/*.java src/com/yourpath/base/*.java src/com/yourpath/common/*.java

-classpath 指定你项目代码中依赖的第三方 jar 包, 如果是 maven 工程,就是 Maven Dependencies 下的 jar 包,指定到 jar 包的绝对路径就行。

为什么不使用编译工具?学习编译打包的时候可以分开 aapt/javac/dex 等,但是实际工作上还是用 mvn 或者 gradle 方便很多

maven 和 gradle 都要去重构目录结构吧,现在的开发懒的不想去动目录,所以我目前尝试用这种方法打包,不行再用 maven 和 gradle 吧,谢谢楼上的三位

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册