javac java命令的使用(java运行带包名class文件报找不到或无法加载主类)

摘要:
使用javac命令编译具有包名的类,然后使用java命令运行编译的类文件。很容易报告无法找到或加载主类。原因是,在使用javac命令编译java文件时,没有添加-d选项,以便将每个级别的包编译到相应的文件夹eg:extension:1中。如果java文件中有中文,则在编译javac文件时必须使用-encoding选项来指定代码,并且在运行java时不需要使用-encoming,例如:javac-encodingUTF-8xx.java或j

使用javac命令编译带包名的类,然后再使用java命令运行编译后的class文件很容易报找不到或无法加载主类,原因是使用javac编译java文件时没有添加-d选项使每一级包编译为对应的文件夹

eg:

javac java命令的使用(java运行带包名class文件报找不到或无法加载主类)第1张

扩:

1、如果java文件中有中文,必须在javac编译的时候用-encoding选项指定编码,java运行的时候不用再-encoding了,如:

javac -encoding UTF-8 xx.java

javac -encoding "UTF-8" xx.java

选项值既可以加引号,也可以不加引号

2、如果java文件中有引用其他jar包内的文件,必须编译和运行的使用使用-classpath或-cp(classpath的缩写)选项指定寻找的jar包(多个jar包之间用分号分割,最好指定一下用点号表示的当前目录,否则运行时会找不到当前类的class文件),如:

javac -encoding UTF-8 -classpath ".;a.jar" xx.java -d . 

java -encoding "UTF-8" -cp .;a.jar x.xx

选项值既可以加引号,也可以不加引号

2.1、写程序的时候,会使用import语句来引入一些已经写好的类,设置CLASSPATH就是告诉编译器要如何去哪里找引用的类;sun 为我们提供了一些额外的丰富的类包,一个是 dt.jar,一个是 tools.jar,这两个 jar 包都位于%JAVA_HOME%lib 目录下,所以通常我们都会把这两个 jar 包加到我们的 classpath 环境变量中设置” CLASSPATH : %JAVA_HOME%libdt.jar; %JAVA_HOME%lib ools.jar;”(前面的“.”不可少,它代表了我们为自己的java类建立的工作路径,其它的是jdk自带的标准类库路径)

在jdk1.6以后,不用设定CLASSPATH,仍然能够找到jdk的类库,编译基本的JAVA程序。

免责声明:文章转载自《javac java命令的使用(java运行带包名class文件报找不到或无法加载主类)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Adobe Edge Animate 1.0 概述CentOS (6.5|7.4)网卡安装报"Error, some other host already uses address"的解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Shell学习(五)Shell输出命令

一、echo命令 #1、直接显示字符串 echo "It is a test" #输出:It is a test #2、显示转义字符 echo ""It is a test"" #输出:"It is a test" #3、显示变量 name=Shell echo "$name It is a test" #输出:Shell is a test #4、...

【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架

本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gcaufy 导语 Bugly 之前发了一篇关于微信小程序的开发经验分享(点击阅读),小伙伴们在公众账号后台问了很多关于小程序开发方面的问题,精神哥在查阅相关内容...

分享基于.NET动态编译&Newtonsoft.Json封装实现JSON转换器(JsonConverter)原理及JSON操作技巧

看文章标题就知道,本文的主题就是关于JSON,JSON转换器(JsonConverter)具有将C#定义的类源代码直接转换成对应的JSON字符串,以及将JSON字符串转换成对应的C#定义的类源代码,而JSON操作技巧则说明如何通过JPath来快速的定位JSON的属性节点从而达到灵活读写JSON目的。 一、JSON转换器(JsonConverter)使用及原...

Docker配置文件-Dockerfile详解

1.Dockerfile中所用的所有文件一定要和Dockerfile文件在同一级父目录下,可以为Dockerfile父目录的子目录2.Dockerfile中相对路径默认都是Dockerfile所在的目录3.Dockerfile中一定要惜字如金,能写到一行的指令,一定要写到一行,原因是分层构建,联合挂载这个特性。Dockerfile中每一条指令被视为一层4...

docker打包镜像,运行镜像命令,docker常用指令

dockerfile文件:解决图形验证码空指针异常 #FROM java:8FROM openjdk:8-jdk-alpineRUN set -xe && apk --no-cache add ttf-dejavu fontconfigARG JAR_FILECOPY ${JAR_FILE} app.jarEXPOSE xxxx端口号ENT...

编译预处理命令--define和ifdef的使用

这里将对常用的预处理命令进行学习。 一、宏定义  ·defined  格式:`defined     宏名      数值      或者 `define      宏名   注意:后面没有‘;‘,和单片机不一样; 二、文件包含处理 ·include  include 的格式在不同的编译器里是不一样的:  在quartus 中为:·include "def...