目录
- MAC 在类路径或引导类路径中找不到程序包 java.lang
- Java错误:找不到或无法加载主类
- java xxx 执行需要虚拟路径
- 总结
1、定性问题:Maven配置引用了系统环境变量
2、找到pom.xml文件中compilerArguments # bootclasspath引用了哪个系统环境变量
3、MAC打开命令行:each $JAVA_HOME ,返回空说明系统环境变量未配置
4、进一步定位问题:如何配置系统环境变量
5、sudo vim ~/.bash_profile 添加环境变量
6、保存后输入 source .bash_profile 回车,再输入echo $JAVA_HOME
7、再去编译Maven应该可通过
8、如果编译不通过,在pom.xml 中配置
<properties> <JAVA_HOME>/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home</JAVA_HOME> </properties>
一般情况下,我们都使用工具进行代码的编辑和调试,例如eclipse 、Manven、Android Studio、sublime、vim、notepad、记事本等。
当我们用eclipse android studio等创建的project和java类文件,都是有包名的,用工具正常编译和运行,但此时切换到命令行执行的时候:
的时候 极有可能出现找不到或无法加载主类
当我们在初学Java的是时候,类文件中是不设定包名(package)的,这种情况下注意classpath,基本上没有问题。但当我们用工具(eclipse,android studio)进行编写代码的时候,代码文件的位置是按包名分开的目录下,注意这里是相对物理目录(com/eagle/app),且代码中声明了包名(package),这里可以认为是虚拟目录(com.eagle.app)。
本文主要说明classpath和系统环境变量PATH都没问题的情况下出错原因和正确处理方法。
代码文件很简单如下:
package com.eagle.app; public class MainJava { public static void main(String[] args) { if (args != null) { for (String arg : args) { System.out.println("arg = " + arg); } System.out.println("arg = " + args); } else { System.out.println("args = " + null); } }
javac xxx.java 编译需要相对物理路径
如上图,以Android studio 为例说明
1、工程目录下有src目录,但这里包含整个app的文件,不是代码的”src”目录;eclipse的话,src目录就是代码目录。
2、这才是代码的”src”目录,且目录下有我们和我们包名一一对应的”目录” com/eagle/app
要编译MainJava,使用:
//cd 到app目录 javac MainJava.java
或
//cd 到eagle 目录 javac app/MainJava.java
甚至
//cd 到main目录 javac java/com/eagle/app/MainJava.java
都是可以的。当然还可以是任意位置+相对目录。
回头来解释:相对于当前执行的目录(如app 目录、eagle目录,main目录),物理路径是有效的计算机路径(xxx/xxx/xxx),所以起名相对物理路径。
如果出错,一定是路径不对。
备注:代码目录的判定是以新建代码文件时候,包名的起始目录
这里就有点意思了,强调一下,包名虚拟路径:xxx.xxx.xxx,不是以“/”分隔的目录,因此叫虚拟路径。
上图中,2是java代码,1是工具编译生成的字节码文件,现在要执行MainJava.class,正确的命令:
//cd 到1中的main目录,不可再到com或更底下的目录
F:GSProject>cd javatestbuildclassesjavamain
F:GSProjectjavatestbuildclassesjavamain>java com.eagle.app.MainJava
注意:不要带.class (java com.eagle.app.MainJava.class是不对的),也不要试图更改到其他目录用相对目录执行,因为java命令就认后面的参数为包名。
如下均是错误的
F:GSProjectjavatestuildclassesjavamain>java com.eagle.app.MainJava.class
错误: 找不到或无法加载主类 com.eagle.app.MainJava.class
F:GSProjectjavatestuildclassesjava>java maincom.eagle.app.MainJava
错误: 找不到或无法加载主类 maincom.eagle.app.MainJava
好,现在我们将上图中的1所圈的目录移位到javatest目录,我们在javatest目录中执行java com.eagle.app.MainJava
F:GSProjectjavatest>java com.eagle.app.MainJava
arg = [Ljava.lang.String;@75b84c92
结果正常输出main函数的参数地址。由此可见,我们可以随意运行我们的字节码了,把它放到linux上或mac上,就可以愉快的做我们希望做的事情了。
1中的目录构成就是package com.eagle.app;一定弄清楚javac 文件路径是**/xxx/xxx/xxx/Name.java**,
java 文件路径是xxx.xx.x.Name,不要带class。
小结:
无论什么工具,只要我们掌握了java代码文件的路径和字节码的路径,那么可以欢快的玩耍。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
buy generic viagra soft tabs viagra daily use viagra 50mg price in india
cephalexin generation can i take cephalexin without food para que sirve keflex
what are the side effects of amoxicillin should amoxicillin be taken with food what is amoxicillin prescribed for
augmentin duo 457 mg/ 5 ml alternative augmentin penicillin allergy augmentin raggi solari
differenza tra augmentin e generico jak stosować augmentin augmentin antibiotics drinking
ciprofloxacin discount ciprofloxacin eye ointment ciprofloxacin 500mg antibiotics
can i take tylenol and prednisone prednisone taper chart 20 mg long-term side effects of prednisone in dogs
ciprofloxacin brand name and generic name keflex vs ciprofloxacin ciprofloxacin muscle pain
can i take azithromycin and prednisone at the same time can prednisone help sinus infection prednisone action
doxycycline and sunlight doxycycline hyclate uti is doxycycline good for strep throat
doxycycline can i drink alcohol will 3 days of doxycycline cure gonorrhea cellulitis doxycycline
augmentin 625mg dosage augmentin dosage for sinus infection how many days augmentin vs amoxicillin
can you take azithromycin and clindamycin together can doxycycline and azithromycin be taken together azithromycin acid reflux
buy cialis through paypal buy cialis singapore tadalafil 20mg uk
viagra 100 buy generic viagra cheap sildenafil 50 mg tablet price in india
levitra for women where can you get viagra sildenafil online pharmacy
cialis stopped working elevex tadalafil 20mg best price for cialis 20 mg
buy cialis canada paypal super strength cialis benefits of cialis
help writing college essay need help to write an essay custom essay cheap
college personal essay examples compare and contrast essay help mba essay examples
essay writing website essay maker definition essay topics
service essay writing essays on the help english essay help online
can i get someone to write my essay why columbia essay application essay writing service
1000 word essay pages expert essay writers what is explanatory essay
how many paragraphs in an essay research essay outline good introduction for essay
unicare pharmacy artane castle online pharmacy tramadol reviews online pharmacy azithromycin
spironolactone online pharmacy mexican online pharmacies cialis discount pharmacy
viagra verified internet pharmacy practice sites trust pharmacy viagra target pharmacy nexium
xlpharmacy review viagra king pharmacy clomid online pharmacy no prescription uk
online pharmacy australia paypal pharmacy rx one online pharmacy discount online pharmacy
buy cialis tadalafil tadalafil cipla amino tadalafil dosage
what is tadalafil used for in bodybuilding long term use of tadalafil how much tadalafil
what happens if you take expired tadalafil oxytocin tadalafil erectafil tadalafil
best time to take tadalafil 5mg tadalafil experience tadalafil mg dosage
sildenafil versus tadalafil who is licensed to manufacture generic tadalafil tadalafil 20 mg discount coupon
tadalafil 5mg coupon walmart tadalafil hair growth best way to take tadalafil 20 mg
what is tadalafil generic for invictus tadalafil 20 mg precio cost of tadalafil in canada
tadalafil works for how long how to take tadalafil 20 mg sildenafil vs tadalafil side effects
metoprolol and tadalafil discount cialis tadalafil tadalafil rxlist
tadalafil empty stomach tadalafil muscle growth what does tadalafil pill look like
generic tadalafil free shipping can you buy tadalafil over the counter tadalafil kidney
difference sildenafil tadalafil tadalafil citrate 6 or 9 mg tadalafil