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

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


测试目录结构

test

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

 A.java 代码如下:

 import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public class A { public static void main(String[] args) throws Exception {
/**
* toHanyuPinyinStringArray方法接收的是字符类型char,返回的是字符串数组String[]
*/
for(int i=0; i<args[0].length(); i++) { String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(args[0].charAt(i)); for (int j=0; j<pinyinArray.length; j++) { System.out.println(pinyinArray[j]);
}
}
}
}

 开始编译

成功运行

  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<标志>                                          直接将 <标志> 传递给运行时系统

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

  1. 【Java_基础】cmd下使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

    1.问题如下 当在命令行使用java命令执行字节码文件时提示“错误:找不到或无法加载主类” 2. 问题分析 这是由于在运行时类的全名应该是包名+类名,例如在包net.xsoftlab.baike下的类 ...

  2. springboot项目上有个红叉,且ecplise没有自动编译项目,运行提示“错误: 找不到或无法加载主类”

    近期在做springboot项目,发现springboot项目上有个红叉但找不到哪个类报错,ecplise没有把项目自动编译,运行还提示“错误: 找不到或无法加载主类”,进入工作空间“项目\targe ...

  3. mac 下 使用 java运行 class 文件 总是提示 “错误: 找不到或无法加载主类”的解决方法

    发现问题 切换到mac平台后,突然想写点程序运行在mac下,想到mac自带java,会方便好多.不过在这过程中遇到了麻烦: 总是提示 “错误: 找不到或无法加载主类” 工程结构 查了好久,终于找到原型 ...

  4. java编译通过,运行却提示找不到或无法加载主类

    问题: HelloWorld.java 1 package myP101; 2 3 public class HelloWorld { 4 public static void main(String ...

  5. 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析

    有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题. 其实原因很简单,我们忽略了2个细节. ...

  6. Linux下Java运行.class文件,报错找不到或无法加载主类

    classpath配置的错误,所以找不到.class文件. 原先的etc/profile中的classpath配置 export CLASSPATH=$JAVA_HOME/lib/tools.jar ...

  7. 记一次使用cmd执行java文件遇到的坑...包括“使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题”

    今天写了一个java文件,类似聊天软件的东西.在eclipse里输入输出显得没感觉,于是乎就准备在cmd里输入和显示输出.如下图,我准备运行的是ChatDemo.class文件.路径是:D:\work ...

  8. javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题

    1.pack后为包名,包与系统文件夹一一对应.并且代码中的包名不包含文件包的名字,即文件名 2.javac 按照*.java 文件的所在路径进行编译,编译完成后,使用java +完整包名(包含文件包名 ...

  9. 编译和运行java文件 找不到或无法加载主类

    这边提供一个关于程序中含有package关键字,使用“终端”运行程序时出现“找不到或无法加载主类”,而使用Eclipse软件可以正常运行程序的可能解决办法. 例如程序名为HelloWorldTest. ...

随机推荐

  1. ecplise导入工程出现乱码的解决方案

    eclipse之所以会出现乱码问题是因为eclipse编辑器选择的编码规则是可变的.一般默认都是UTF-8或者GBK,当从外部导入的一个工程时,如果该工程的编码方式与eclipse中设置的编码方式不同 ...

  2. jquery源码解读 (摘自jQuery源码分析系列图书(pdf)) 持续更新

    1.总体架构 1.1自调用匿名函数 //自调用匿名函数 (function(window,undefined){ //jquery code})(window); 1.这是一个自调用匿名函数.第一个括 ...

  3. phython学习

    Python 中文学习大本营 关于作者 赞助本站 The Python Tutorial (Python 2.7.X) 的中文翻译版本.Python Tutorial 为初学 Python 必备官方教 ...

  4. Java中弹出对话框中的几种方式

    1.显示一个错误对话框,该对话框显示的 message 为 'alert': JOptionPane.showMessageDialog(null, "alert", " ...

  5. [SoapUI] 通过context获取response并解析里面的某个字段的值

    import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def realI ...

  6. KbmMW 服务器架构简介

    kbmmw 由于文档比较少,很多同学开始用时很难理解.一直准备写一个关于kbmmw 架构的东西. 这几天与红鱼儿(blog)研究服务器线程时,整理了一下,大概画了一下kbmmw (版本4.5)服务器的 ...

  7. 2018.07.26NOIP模拟 魔法数字(数位dp)

    魔法数字 题目背景 ASDFZ-NOIP2016模拟 题目描述 在数论领域中,人们研究的基础莫过于数字的整除关系.一般情况下,我们说整除总在两个数字间进行,例如 a | b(a能整除b)表示 b 除以 ...

  8. AutoCompleteTextView

    在本节中作者只写了AutoCompleteTextView 和MutiAutoCompleteTextView 的用法,没有写怎样得到选中的值,我做了如下修改,增加按钮获取值赋值给TextView p ...

  9. addEvent兼容版

    function addEvent(elem,type,handle){ if (elem.addEventlistener) { elem.addEventlistener(type,handle, ...

  10. 使用原生Java Web来实现大文件的上传

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...