• javac编译单文件、多文件引入jar包、-cp解决无法加载主类问题


     引言:很多人用ide集成开发环境用的多了,对dos命令编译多个java文件或引入jar包都变得陌生了,java不同于其他解释语言,如ruby、php 都有require,直接引入即可运行代码,但java需要先编译成字节码,所以运行的时候需要在cmd里面加些参数

    1. 引入外部jar包编译运行


    测试目录结构 

    test

    • -- src/A.java 
    • -- lib/pinyin4j-2.5.0.jar 

     A.java 代码如下:

     1 import net.sourceforge.pinyin4j.PinyinHelper;
     2 import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
     3 import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
     4 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
     5 import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
     6 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
     7 
     8 public class A {
     9 
    10     public static void main(String[] args) throws Exception {
    11         /**
    12          * toHanyuPinyinStringArray方法接收的是字符类型char,返回的是字符串数组String[]
    13          */
    14         for(int i=0; i<args[0].length(); i++) {
    15 
    16             String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(args[0].charAt(i));
    17 
    18             for (int j=0; j<pinyinArray.length; j++) {
    19 
    20                  System.out.println(pinyinArray[j]);
    21             }
    23         }
    25     }
    26 }

     开始编译

    成功运行

    1.    javac -cp 指明了.java文件里import的类的位置
    2.    java -cp 指明了执行这个class文件所需要的所有类的包路径-即系统类加载器的路径(涉及到类加载机制)

    注意:路径在linux中用:隔开  在windows中用;隔开,对于.class文件来说,只需要指明包的路径即可;但是对于jar文件来说,必须要指定全路径即路径+文件名的格式,不能只指定一个路径

    pinyin4j-2.5.0下载

     https://files.cnblogs.com/files/bc8web/pinyin4j-2.5.0%E8%A7%A3%E5%8E%8B%E4%BD%BF%E7%94%A8.rar

    2.  编译多文件


     一次性编译所有.java文件

    •  一次性编译所有.java文件

    • 编译指定的多个java文件

    附javac 用法

    用法:javac <选项> <源文件>

    其中,可能的选项包括:
    -g                                                       生成所有调试信息
    -g:none                                              不生成任何调试信息
    -g:{lines,vars,source}                         只生成某些调试信息
    -nowarn                                            不生成任何警告
    -verbose                                           输出有关编译器正在执行的操作的消息
    -deprecation                                    输出使用已过时的 API 的源位置
    -classpath <路径>                             指定查找用户类文件的位置
    -cp <路径>                                       指定查找用户类文件的位置
    -sourcepath <路径>                       指定查找输入源文件的位置
    -bootclasspath <路径>                  覆盖引导类文件的位置
    -extdirs <目录>                               覆盖安装的扩展目录的位置
    -endorseddirs <目录>                   覆盖签名的标准路径的位置
    -d <目录>                                        指定存放生成的类文件的位置
    -encoding <编码>                          指定源文件使用的字符编码
    -source <版本>                              提供与指定版本的源兼容性
    -target <版本>                                 生成特定 VM 版本的类文件
    -version                                            版本信息
    -help                                                 输出标准选项的提要
    -X                                                      输出非标准选项的提要
    -J<标志>                                          直接将 <标志> 传递给运行时系统

  • 相关阅读:
    用户场景分析
    人月神话阅读笔记03
    钢镚儿开发的最后一天
    钢镚儿开发的第九天
    4.25第10周周总结
    5号总结
    4号总结(3)
    4号总结(2)生成apk
    4号总结(1)
    3号寒假总结
  • 原文地址:https://www.cnblogs.com/bc8web/p/javac.html
Copyright © 2020-2023  润新知