错误:找不到或者无法加载主类
springboot错误:找不到或无法加载主类
springboot错误:找不到或⽆法加载主类
⼀:当在eclipse启动spring boot项⽬时出现问题:
springboot错误: 找不到或⽆法加载主类
解决办法:
1,通过cmd命令⾏,进⼊项⽬⽬录进⾏,mvn clean install 进⾏编译
项⽬install后,再到eclipse 上选中项⽬按F5刷新项⽬。
再运⾏即可问题解决。
2,在eclipse 上选中项⽬
点击clean 清理项⽬再运⾏问题解决。
3,如果运⾏还是出现⽆法加载主类,
(a)排查项⽬代码是否有问题,
(b)可以进⼊cmd, cd 进⼊项⽬⽬录
执⾏命令:
mvn clean compile
mvn install
mvn spring-boot:run
上⾯三个命令进⾏编译,启动。
注意:⽤cmd命令启动要配置好maven环境,jdk环境。
eclipse启动和cmd命令启动正常界⾯分别如下图:
(eclipse启动不会的可以看⽂章⼀)。
eclipse启动和cmd命令启动要分开不然端⼝冲突,修改启动端⼝在源码⾥⾯有。
加载dll文件失败,系统找不到指定模块解决方法
加载dll文件失败,系统找不到指定模块解决方法(2012-11-01 22:23:06)转载▼标签:杂谈前些天,电脑中了病毒,病毒删除后,留了点后遗症,困惑了好几天,问题终于解决了。
方法如下(网上资源转摘)以备后用:这是因为开机自启动的应用程序找不到要调用的DLL文件给出的错误提示。
我们所要做的是判断这个DLL文件是正常应用程序的还是病毒的。
(通常病毒的成份会比较多。
这里我把3721,新浪的那些个鬼玩意儿也归为病毒)如果是正常应用程序的话。
如果可以找到这个DLL文件的话。
那么在运行里输入cmd回车调出命令提示符。
然后把目录转自应用程序的安装目录下。
运行regsvr32 xxxx.dll(就是不能正常加载的那个DLL文件)重新注册一次就可以了。
如果找不到的话。
那你就重新安装这个应用程序吧。
病毒这种情况见得比较多。
最有可能的就是病毒文件本身已经被杀毒软件查杀并删除了。
可启动信息还残留在电脑里。
也就是说。
在开机的时候系统还是会自动搜寻这个文件并试图运行他。
如果找不到的话就会给出类似的提示(所以这里可以举一反三。
并不只是DLL文件。
EXE文件等也是这个原因)这样的话。
你可以在开机启动项里找一找他。
1.电脑加载出错找不到指定的模块若是C:/WINDOWS/bownlo~/cnsMin.dll楼主点开始--运行--regedit--查找--cnsMin.dll--F3--删除--重启即可.]2.如果电脑开机出现'加载c:\progra`1\tencent\ssplus\update\temp2.dat时出错找不到指定的模块这个是QQ的问题,你把QQ御了再重装下,或者将启动时默认启动QQ的那个删掉,在开始,程序,启动栏里,如果没有,你可以尝试下卸掉QQ,重新安装看看]3.出现---加载"c:\**\****.dll"文件时出错,找不到指定模块的解决办法我的许多朋友的机子经常出现开机加载问题,他们被这个问题搞的很烦,久病成医,..下面介绍一下心得:【分析】电脑病毒、木马、流氓软件没杀干净,注册表残留了无用的DLL文件。
在命令行运行HelloWorld
在命令⾏运⾏HelloWorld
在命令⾏运⾏Hello World
1. 先新建⼀个⽂档⽂件,然后重命名为Hello,把后缀从.txt改为.java,得到⼀个Hello.java⽂件。
2. ⽤⽂本编辑器或notepad++打开Hello.java,进⾏下列代码的编译:
public class Hello{
public static void main(String [] args){
System.out.println("Hello World!");
}
}
注意:字母的⼤⼩写,符号全部都是英⽂的!
3. 到这⼀步⼀个简单的java程序就编写完成了,接下来我们需要进⼊命令⾏,这⾥我们直接在所建的Hello.java的⽂件夹下进去。
直接在
⽂件夹前加*cmd * +Enter,如下图:
4. 当我们进⼊命令⾏,我们需要先编译java⽂件,通过在命令⾏输⼊javac Hello.java,如果没有报错,可以在我们新建Hello.java
的⽂件夹⾥看到⼀个Hello.class⽂件,则编译完成。
5. 再检查完有Hello.class⽂件并确定有之后,在命令⾏运⾏Hello.class⽂件,通过输⼊java Hello就可以成功运⾏,如下图:
总结
1. 在⽤⽂本编辑器编写Hello.java⽂件时需要严格注意格式,如字母⼤⼩写,符号⼤⼩写,写完之后最好检查⼀遍,有
没有错。
2. 在命令⾏编译Hello.java代码时,⼀定要确保在放Hello.java的⽂件夹下,不然会报找不到或⽆法加载主类 Hello的异
常!。
idea找不到或无法加载主类java.lang.ClassNotFoundException
idea找不到或⽆法加载主类ng.ClassNotFoundException昨天研究类加载的双亲委派,按照demo敲敲加深记忆的时候,报了标题上的错。
困扰了⼀夜,今天起来吃过饭就琢磨这个事情,刚刚终于搞明⽩了。
demo的⽬的是利⽤URLLoader加载磁盘上的Person类我的demo的⽬录结构:代码结构:package com.classloader.test;import java.io.File;import .MalformedURLException;import .URI;import .URL;import .URLClassLoader;public class TestURLLoader {public static void main(String[] args) throws ClassNotFoundException, MalformedURLException, InstantiationException, IllegalAccessException {new LoaderFromDisk();}}class LoaderFromDisk {LoaderFromDisk() throws MalformedURLException, ClassNotFoundException, IllegalAccessException, InstantiationException {File file = new File("F:/git-worksapce/try-new-technologies/classLoader/src/com/world/");URI uri = file.toURI();URL url = uri.toURL();URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});System.out.println("urlClassLoader的⽗加载器="+urlClassLoader.getParent());Class aclass = urlClassLoader.loadClass("com.world.Person");Object obj = aclass.newInstance();}}package com.world;public class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) { = name;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}}很简单的demo,TestURLLoader中有main⽅法我点击运⾏控制台的报错:我们来看看上图红框中idea帮我们⽣成的执⾏类的命令:"C:\Program Files\Java\java11\jdk-11.0.5\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=51749:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 com.classloader.test.TestURLLoader上⾯的是idea创建的java project,我们⽤idea创建maven⼯程,⽬录如下:代码⼀模⼀样,只是这个是maven⼯程,我们run的结果:成功了!!我们分析idea两种⽅式,⽣成的运⾏命令:⽅式⼀:"C:\Program Files\Java\java11\jdk-11.0.5\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=51749:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 com.classloader.te 错误: 找不到或⽆法加载主类 com.classloader.test.TestURLLoader原因: ng.ClassNotFoundException: com.classloader.test.TestURLLoaderProcess finished with exit code 1⽅式⼆:"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=52066:D:\Program Files\JetBrains\IntelliJ IDEA2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;F:\git-worksapce\try-new-technologies\classLoader\target\classes"com.classloader.test.TestURLLoaderurlClassLoader的⽗加载器=uncher$AppClassLoader@18b4aac2Process finished with exit code 0不同:maven的多了⼀个-classpath参数!结论:第⼀种java⼯程,idea没有指定classpath参数,所以肯定找不到要执⾏的类,不知道是我配置问题,还是这就是个idea的bug,这个是问题?,我推荐使⽤第⼆种maven⼯程。
青鸟javac和java命令的正确使用方法
“找不到或者无法加载主类”搞得很烦,今天彻底搞明白原因了,总结如下:1.javac命令如果要编译的.java文件不带完整路径,javac会默认在当前路径中寻找要编译的.java文件。
例如:Test1.java文件的存放位置是d:\com\Test1.java,而运行运行javac命令时是在c:\uers\zhangsan 提示符下运行的,那么输入javac Test1.java就会编译失败,因为编译器在当前路径(c:\uers\zhangsan)中找不到Test1.java文件。
解决办法:javac d:\com\Test1.java就ok。
注:javac命令跟设置的path环境变量没有关系,设置path环境变量只是为了在任何提示符下都能运行javac,java命令。
另外,如果要编译的类文件(类文件A)中用到了同一个包中的另外一个类(类文件B),javac 类文件A时需要同时编译类文件B,即:javac d:\com\类文件A d:\com\类文件B如果编译的时候不是同时编译这2个类文件,而是先javac 类文件B,然后在javac 类文件A会编译不通过,不明白为什么?????2.java命令java命令能否成功运行class文件跟设置的classpath环境变量有关,也与是否在.class文件所在的目录下运行有关,具体如下:1)没有设置classpath环境变量比如:Test1.class文件的存放位置是d:\com\Test1.class,且class 文件中不带包,那么想要成功运行Test1.class文件就必须将命令符切换到d:\com下,然后再运行java Test1。
因为java只会在当前路径下寻找Test1.class文件,找到就运行,找不到就拉到。
若Test1.class文件中带包的话(文件中有package com语句)运行的时候,只需要将命令提示符切换到包所在的路径即可,上述实例中命令行提示符切换到d:\即可,运行命令为:d:> java com.Test12)设置classpath环境变量如果想在任何命令提示符中都可以运行Test1.class文件,我们可以设置classpath环境变量(分临时设置和永久设置两种方式),将Test1.class所在的路径加入到classpath变量即可,这样当jvm在当前路径中找不到Test1.class文件时,它会再去classpath指定的路径中继续寻找。
错误:找不到或无法加载主类
文件内容如下:
public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Core Java"); }
}
ቤተ መጻሕፍቲ ባይዱ
2. package 问题
如果类上加了 package,就需要建立对应 package 的目录。
3. 命令使用问题
第一步需要使用 javac Welcome.java ,将代码编译成字节码文件。成功编译后会生成 Welcome.class 文件。 第二步使用 java Welcome 运行,Welcome 后面不要跟 .java 或者 .class。这里的 Welcome 是 main 函数所在的类名。
登录后才能查看或发表评论立即登录或者逛逛博客园首页
错误:找不到或无法加载主类
问题描述:
在命令控制台中运行 java Welcome,显示如下错误: 错误: 找不到或无法加载主类
原因:
1. 环境变量 CLASSPATH 设置问题
在 CLASSPATH 中添加 . (英文句号),让 java 查找当前目录。
IDEA中启动报错:找不到或无法加载主类
IDEA中 启 动 报 错 : 找 不 到 或 无 法 加 载 主 类
问题: 项目是maven的多模块项目,新增的模块,本来是能启动的,但是修改了模块名后,就一直报这个错:找不到或无法加载主类。
解决方法: 1、因为知道是改过模块名无法启动的,所以猜测是因此导致编译有问题,所以尝试重新rebuild,使用Build→Rebuild Project。 但还没解决问题,怀疑是缓存问题。 2、使用File→Invalidate Caches/Restart...,选择Invalidate,清除一下缓存。
3、使用File→Project Structure,左侧选择Modules,点击减号移除有问题的模块,再点击加号重新导入该模块。
4、重新启动模块,发现问题解决。
JDKjavaversion1.8.0_181环境搭建
JDKjavaversion1.8.0_181环境搭建
1.从官⽹上下载jdk软件,本⼈的系统是32位 WIN10 所以只能装1.8.0_181的了。
x86
2.下载完就按照提⽰安装就可以了,傻⽠式操作就不多说了。
3.配置环境环境变量
3.1 点击我的电脑--》属性--》⾼级系统设置----》⾼级---》环境变量设置
在系统环境变量中添加JAVA_HOME ,变量值是你JDK的安装⽬录我的是D:\java\jdk
3.2在Path中编辑添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(不是win10的系统需要结尾加上;再写这个)
3.3 添加CLASSPATH属性,记得要⼤⼩,我试了⼩写好像有问题添加值 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (备注:%前⾯的.⼀定要加上)
4.验证环境变量
4.1 通过cmd 进去输⼊java 或者javac显⽰有东西,就代表安装可以了。
java -version 可以看当前的版本
4.2我在这之前遇见过⼀个问题,1.javac demo.java ,没有出错,java demo就 java出现错误:找不到或⽆法加载主类demo
后来发现是CLASSPATH环境变量写的不对,所以环境变量⼀定要配置好啊!。
面向对象的程序设计方法
• 执行Circle c1时,系统会为c1分配一个4字节 的存储单元,在未对其赋值之前,它的值 为null,表示不指向任何的对象。 • 执行c1=new Circle( )时会创建一个Circle类的 对象,为它分配存储单元,并将它的地址 存储在c1之中。
• 一个类可以创建任意多个对象,它们拥有相同的属 性和行为,但属性的取值可能是不同的。可以使用 下列形式来访问对象的成员变量和方法: • 对象引用.成员变量名 • 对象引用.成员方法名(参数列表) • 【例3-3】对象引用和对象的创建与使用。 • 语句Circle c1 = new Circle ( ) 应该读作“定义了一个 Circle类的对象引用c1并指向一个Circle类的对象实 例”。 • 为了表述简单,经常读作“定义了Circle类的对象c1 并实例化”。在概念清晰的前提下,无需过度区分 对象、对象实例、对象引用这些名词。
类的定义
• 类的定义形式如下: 类首部{ 类体 } • 类首部的形式为: • [public][abstract|final] class类名[extends 父类名][implements 接 口名列表] • 类体的形式为: { 定义成员变量; //用于描述静态属性 定义构造方法; //一般用于对成员变量初始化 定义成员方法; //用于描述动态行为 }
• 说明: ① 类首部中class和类名是必需的,class为定义类的关 键字,类名要符合标识符的命名规则。 []包围的部分为可选项,[]中用|分隔的部分表示不 能共存,只能选择其一。 ② public是访问控制修饰符,表示该类为公共类,即 所有类均可访问它 • 若省略public,表示其访问控制级别为默认级别,此 时只有同包中的类才能访问它。 • 一个源程序文件中可以定义多个类,但只能有一个 类是public类,而且文件名必须和该类的名字相同。 • 若希望一个包中所有的类均为public类,应在不同 的.java文件中定义它们,当然此时每个文件的开始 均需要使用package语句声明它们处于同一个包。 ③ 其它修饰符的作用在后续章节说明。
java错误:找不到或无法加载主类的解决办法
java错误:找不到或⽆法加载主类的解决办法 此类错误的常见解决办法: 1、是因为.java⽂件不在项⽬的src路径内,也就是说源代码未被eclipse编译,字节码不存在⽆法运⾏了在项⽬名上右键 -> Builder Path -> Configure Build Path -> 选择Source⾯板再点Add Folder, 把源代码所在的包路径的上层⽬录加进来,⽽且如果你是把两个类写在⼀个⽂件⾥的话,你在右键选择Run As Java Appication 的时候,要把光标⾄于包括main⽅法的类上 2、最快捷的解决办法是,打开带有main函数的类,ctrl +A (全选)---> ctrl +X(剪切)-----> ctrl+S(保存)--->关闭---->再打开--->ctrl +C (粘贴) ---->OK;⼀句话就是粘出去关闭再粘进来 3、重建Project也⾏。
4、项⽬的Java Build Path中的Libraries中也许某个jar包是不可⽤的,显⽰红⾊叉叉。
这说明系统找不到这个这个jar⽂件,把这个jar删除或者重新加载进来即可。
5、如果上述不⾏,⼤家直接在 cmd 下 javac 然后 java 运⾏试试,如果这都报错,那是你的 jdk 或者 os 环境有问题了。
下⾯是上⾯的⽅法不能解决的问题 今天的项⽬,从同事那⾥拷过来的,他那⾥jdk是1.8,到我这,右键properities⾥的各种jar都引⼊,jre从1.8改到1.7,都改好后还不能运⾏ 找了半天原因,⽹上的各种⽅法都尝试了,还没有解决,后来发现代码根本没有编译,⼜开始尝试,最后终于找到解决⽅法 打开右键,java Compiler⾥⾯,⼀看原来 Compiler compliance level 是1.8,改为1.7后终于ok了。
java运行显示“找不到或无法加载主类”
java运⾏显⽰“找不到或⽆法加载主类”1.由于是在运⾏阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,⽽导致.class⽂件⽆法加载。
那么此时你可以检查是否配置好classpath路径,⼀般来说classpath路径配置如下:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (注意前⾯的 . 以及;缺⼀不可)其中.表⽰当前路径,;表⽰分隔符。
2.如果试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使⽤的测试代码,是否在某⼀个包名的下⾯;⽐如说如下测试代码:在⽂件所在的当前⽬录下,运⾏javac TestPlusPlus.java编译成功,⽣成TestPlusPlus.class⽂件,这个时候,你⽤java TestPlusPlus想运⾏程序,总会出现”找不到或⽆法加载主类“的错误。
这个时候要注意,之所以找不到,是因为TestPlusPlus在HelloWorld包名的下⾯。
解决办法:1.去掉 ”package HelloWorld;“ 重新⽤javac 编译TestPlusPlus.java,再运⾏javaTestPlusPlus就可以了。
2.新建⼀个包名⼀样的⽂件夹,在本例中,为建⽴⼀个HelloWorld的⽂件夹,把TestPlusPlus.java⽂件移到该⽬录下。
然后在HelloWorld⽂件夹的平级下,打开DOS命令窗⼝,运⾏javacHelloWorld/TestPlusPlus.java编译程序,运⾏javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运⾏含有包名的java程序。
注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令⾏⽆法判断包名与java程序名的分割点在哪⾥,从⽽还是找到或者⽆法加载主类。
Day81_错题集
Day81_错题集Day81_错题集今天错的题有点多,得好好加油了,多背知识点,加油。
路不是⽩⾛的,每多熬⼀个⼩时,你的⼯资就多⼗块钱。
加油先定个⼩⽬标:每天做20-30道题把。
加油1、在java中,下列对继承的说法,正确的是()⼦类能继承⽗类的所有成员⼦类可以继承⽗类所有成员,只是对某些成员具有访问权限(private),访问不了private。
2、It is an important feature of the Java language that it always provides a default constructor to a class.False题⽬:总是为⼀个类提供了⼀个默认的构造函数是Java语⾔的⼀个重要特性。
事实上只有在我们没有显⽰声明任何构造⽅法时java才会为我们提供⼀个默认的⽆参构造函数。
3、以下声明合法的是public final static native int w( )<==这个是对的,下⾯三个都是错的 native是⽅法修饰符default String s --->>default不能修饰变量abtract double d ---->>抽象不能修饰常量abstract final double hyperbolicCosine( ) ---->>抽象⽅法不能⽤final,因为抽象就是为了给⼈重写,加了final不可变,所以是错的。
4、结构型模式中最体现扩展性的模式是()装饰模式--->>正确答案合成模式桥接模式适配器a.适配器模式 Adapter适配器模式是将⼀个类的接⼝转换成客户希望的另外⼀个接⼝。
适配器模式使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类可以⼀起⼯作。
两个成熟的类需要通信,但是接⼝不同,由于开闭原则,我们不能去修改这两个类的接⼝,所以就需要⼀个适配器来完成衔接过程。
b.桥接模式 Bridge桥接模式将抽象部分与它的实现部分分离,是它们都可以独⽴地变化。
解决IDEA和CMD中java命令提示错误:找不到或无法加载主类的问题
解决IDEA和CMD中java命令提⽰错误:找不到或⽆法加载主类的问题⼀概述CMDD:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java CommandLineParameter 错误: 找不到或⽆法加载主类 CommandLineParameterIDEAD:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java CommandLineParameter 错误: 找不到或⽆法加载主类 CommandLineParameter⼆问题分析&解决⽅法JDK问题排除:javacjava根据上述截图可以排除JDK问题,猜测是IDEA中Terminal的问题,可是使⽤CMD出现的结果⼀样,所以排除这些问题,最后问题真正的原因是IDEA中项⽬java源代码都会使⽤package指定包路径。
package .GC;public class CommandLineParameter {public static void main(String[] args) {System.out.println(args);for (String s:args) {System.out.println(s);}}}因为我们的类中含有了包路径package .GC,所以我们需要将javac编译⽣成class⽂件放⼊package指定的⽬录结构中。
javac -d . CommandLineParameter.java // -d表⽰⽣成package指定的⽬录结构 .表⽰⽣成的⽬录结构保存在当前⽬录java mandLineParameter // 执⾏package指定的⽬录结构中的程序D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>javac -d . CommandLineParameter.javaD:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java mandLineParameter[ng.String;@15db9742三排除包问题public class Test{public static void main(String[] args) {System.out.println(args);for (String s:args) {System.out.println(s);}}}Test.java是不好含有package声明的java源⽂件D:\Project\Computer-Science-And-Technology\writeExam\test>javac Test.javaD:\Project\Computer-Science-And-Technology\writeExam\test>java Test[ng.String;@15db9742当java源⽂件中不存在包的时候就不⽤执⾏javac 编译后的包⽬录了。
Java找不到或无法加载主类的修复方法
Java找不到或⽆法加载主类的修复⽅法有时,当我们运⾏Java程序时,我们可能会看到“找不到或⽆法加载主类”。
原因很容易猜测:JVM找不到主类并给出了这个错误。
但是为什么不能呢?在本⽂中,我们将讨论找不到主类的可能原因。
另外,我们将看看如何修复它们。
⽰例程序我们将从HelloWorld程序开始:public class HelloWorld {public static void main(String[] args) {System.out.println("Hello world..");}}现在让我们编译它:$ javac HelloWorld.java在这⾥,编译器将为我们的程序⽣成⼀个.class⽂件。
此.class⽂件将在同⼀⽬录中⽣成。
class⽂件将与Java程序中给定的类名具有相同的名称。
这个.class⽂件是可执⾏的。
在下⾯的部分中,我们将运⾏这个.class⽂件,并尝试理解错误“找不到或加载主类”的可能原因。
错误的类名要运⾏Java编译器⽣成的.class⽂件,可以使⽤以下命令:java <.class filename>运⾏我们的程序:$ java helloworldError: Could not find or load main class helloworld是的,它失败了,错误是“Could not find or load main class helloworld”即找不到或加载主类helloworld。
如前所述,编译器将⽣成.class⽂件,其名称与程序中Java类的名称完全相同。
所以在我们的例⼦中,主类的名称是HelloWorld,⽽不是helloworld,要区分⼤⼩写。
让我们⽤正确的⽅式再试⼀次:$ java HelloWorldHello world..这次它成功地运⾏了。
⽂件扩展名要编译Java程序,必须提供⽂件名及其扩展名(.java):$ javac HelloWorld.java但是要运⾏.class⽂件,我们需要提供类名,⽽不是⽂件名。
错误:找不到或无法加载主类
错误:找不到或⽆法加载主类
问题描述:
⼀直运⾏正常的⼀个⽂件,今天突然爆出这个错误,⼀头懵逼。
经检查,不缺少任何⽀持包,也清空了项⽬缓存,也重启了MyEclipse。
然⽽,并没有什么卵⽤。
分析原因:
查看了⽹上的说有描述,基本上没有说到问题根源。
解决办法:
第⼀步:找到Properties->Run/Debug Settings下⽂件,删除。
注意:不要尝试把TestServer(1)修改为TestServer,直接有提⽰“A 'Java Application' configuration with this name already exists”
第⼆步,删除该路径C:\Users\wushuai\Workspaces\MyEclipse for Spring 2014\.metadata\.plugins\org.eclipse.debug.core\.launches下的所有相关⽂件,重新运⾏。
注意:相关⽂件可能有unch、TestServer(1).launch、TesetServer(2).launch等等多个⽂件,需要统统删除。
第三步,删除重建这个⽂件。
Eclipse无法编译,提示“错误:找不到或无法加载主类”
Eclipse⽆法编译,提⽰“错误:找不到或⽆法加载主类”
jar包问题:
1.项⽬的Java Build Path中的Libraries中有个jar包的Source attachment指为了⼀个不可⽤的jar包,
解决办法是:将这个不可⽤的jar包remove掉。
2.项⽬的Java Build Path中的Libraries中有个jar包是不可⽤的,显⽰红⾊叉叉。
这说明系统找不到这个这个jar⽂件。
解决办法:把这个jar删除即可。
3.eclipse: Eclipse处于打开状态,⽽这时更新SVN代码,再在Eclipse中运⾏程序时也可能会提⽰“错误: 找不到或⽆法加载主类……”。
解决办法是:在Eclipse⼯程⽂件夹上点右键-Refresh,重新编译,⼀功OK。
4.做项⽬过程中,更新了⼀下SVN,把⾃⼰机器上代码更新成了最新版本,可是在运⾏程序时发现Eclipse提⽰:“错误: 找不到或⽆法加载主类……”。
发现根本就没有⽣成.class⽂件,也即没有时⾏编译。
后来连错误提⽰也没有了,点击“build project"后⼀点反应都没有,不能编译。
最后才发现⾃⼰犯的错误好低级:⼯程中的src⽂件夹不是”源⽂件包“形式了,显⽰的是普通⽂件夹的样式。
解决办法是:在src⽂件夹上点右键-Build Path-Use as Source Folder,重新进⾏编译,⼀切正常了。
java -jar 执行 方法
Java是一种广泛应用的编程语言,其灵活性和强大的功能使其在软件开发领域得到了广泛的运用。
在Java编程中,我们常常会用到java -jar命令来执行一些特定的方法或程序。
本文将从执行方法的基本语法、常见问题及解决方法等方面进行介绍,以帮助读者更好地理解和应用java -jar命令。
一、java -jar执行方法的基本语法在Java编程中,我们可以使用java -jar命令来执行一个打包成jar包的程序或方法。
其基本语法如下:java -jar <jar文件名> [参数]其中,<jar文件名>表示要执行的jar包文件名,参数是可选的,可以在执行方法时传入给程序。
在执行java -jar命令时,需要在命令行中切换到jar包所在的目录,然后输入以上命令即可执行指定的程序或方法。
二、java -jar执行方法的常见问题及解决方法在使用java -jar命令执行方法时,有时会遇到一些常见的问题,下面将介绍一些常见问题及其解决方法:1. 无法找到或加载主类当执行java -jar命令时,如果出现"无法找到或加载主类"的错误提示,这通常是由于指定的jar包中的MANIFEST文件中未正确指定主类名所致。
解决方法是打开MANIFEST文件并检查M本人n-Class项是否正确指定了主类名,确保没有拼写错误。
2. 缺少依赖库有时在执行java -jar命令时,会出现"找不到类xxx"的错误提示,这通常是由于jar包所需的依赖库未正确引入或缺失所致。
解决方法是在编译jar包时将所需的依赖库一起打包进去,或者将依赖库放在与jar包相同的目录下。
3. 参数传递错误当执行java -jar命令需要传递参数给程序时,有时会因参数传递错误而导致程序出现异常或错误。
解决方法是检查传递的参数是否符合程序要求,并且要注意参数的顺序和格式是否正确。
三、java -jar执行方法的注意事项在使用java -jar命令执行方法时,还需要注意一些事项,以确保程序能够正常执行:1. 确保jar包正确打包在执行java -jar命令时,需要确保jar包已经正确打包,并且MANIFEST文件中正确指定了主类名和依赖库。
could not find the main class(eclipse不能运行类)
最近做项目把JDK的版本升到了1.6,但是问题也就随之而来。
首先,在eclipse中启动Tomcat服务器,始终不能启动
ng.NoClassDefFoundError: jdk1/6/0/10
开始以为是版本不兼容,但是直接发布在Tomcat目录下,直接点击Tomcat的StartUp.bat 是可以启动的,运行正常。
于是写了一个测试类,在eclipse中运行这个类,只是输出几个字符,居然也不可以,报错信息一样。
Google了些信息出来,无非是说设置path,classpath等,按照这个照做后,很遗憾,报错信息依旧,而且我原来用1.5版本时也没有配置这些变量。
整整一个下午的时间,头晕脑胀,却一无所获。
其实是一个地方的配置写错了。
大家注意了:
红色框起来的地方,这里本来是输入vm参数的,结果我copy/paste,当成了jre的名字,这个参数jre当然不会识别了,但是jre提示的信息也有点过,你要是说“vm参数错误”不就好找了,偏偏说ng.NoClassDefFoundError: jdk1/6/0/10。
下面总结一下:
在用eclipse时无需在环境变量中配置path、classpath等。
在eclipse中配置jre
配置编译选项
再针对具体工程设置
运行时类配置
希望对大家有帮助。
调用java.lang.Runtime.exec的正确姿势分享
调⽤ng.Runtime.exec的正确姿势分享⽬录调⽤ng.Runtime.exec的正确姿势两种⽅法⼩结⼀下Java Runtime.exec()注意事项1.Runtime.exec() 有四种调⽤⽅法2.得到程序执⾏返回值, 0为success3.得到程序执⾏的结果或错误信息4.Runtime.exec()调⽤ng.Runtime.exec的正确姿势今天写⼀个⽤到编译的程序,遇到了问题。
在调⽤runtime.exec("javac HelloWorld.java");运⾏完美,也就是有⽣成.class。
⽽到了runtime.exec("java HelloWorld >> output.txt");却怎么也⽆法重定向输出,连output.txt⽂件也⽣成不了。
测试"echo hello >> 1.txt" 也是不可以,甚是头疼,于是乎翻阅资料,这才发现了⼀个认识上的误区,就是exec(str)中不能把str完全看作命令⾏执⾏的command。
尤其是str中不可包含重定向 ' < ' ' > ' 和管道符' | ' 。
那么,遇到这样的指令怎么办呢?我们接着往下看:两种⽅法⼀种是将指令写到脚本中,在runtime.exec()中调⽤脚本。
这种⽅法避过了使⽤exec(),也是⼀种思路。
还有⼀种⽅法,就是调⽤exec()的重载⽅法:我们来重点看这种⽅法:我们先看⼀下官⽅doc[>link<]给我们提供的重载⽅法:public Process exec(String command) throws IOExecptionpublic Process exec(String command,String [] envp) throws IOExecptionpublic Process exec(String command,String [] envp,File dir) throws IOExecptionpublic Process exec(String[] cmdarray) throws IOExecptionpublic Process exec(String[] cmdarray,String [] envp) throws IOExecptionpublic Process exec(String[] cmdarray,String [] envp,File dir) throws IOExecption翻阅其⽂档,发现其重载⽅法4.exec(String []cmdarray) 最简便适合我们,官⽅说4.exec() 与执⾏6.exec(cmdarray,null,null) 效果是⼀样的。