• 全部
...

求教java的class文件放到服务器上无法运行

慕飒潇湘 2020-12-06 05:21:51
我在服务器上已经安装了jdk,但是无法运行我的class文件,报错如下

我的java代码如下:
  1. package cn.itcast.day08.demo01;
  2. public class demo {
  3. public static void main(String[] args) {
  4. int num = 1;
  5. while (true){
  6. try {
  7. System.out.println("这是第" + num+ "次打印");
  8. num ++;
  9. Thread.sleep(1000);
  10. }catch (Exception e){
  11. continue;
  12. }
  13. }
  14. }
  15. }
...全文
给本帖投票
3561 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 2 楼 icoolno1 的回复:
[quote=引用 1 楼 慕飒潇湘 的回复:] 我电脑的jdk版本 我云服务器jdk版本
编译时候,要指定目标版本 javac demo.java --target 8[/quote] 不行啊,兄弟
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 10 楼 老王就是我 的回复:
jdk版本不对,编译版本和运行版本要保持一致,至少大版本号要一致
版本我改过来了,但还是不行啊@qq_39936465
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 10 楼 老王就是我 的回复:
jdk版本不对,编译版本和运行版本要保持一致,至少大版本号要一致
感觉你说的很多,我这个是自己玩的,今天抽空把两个环境保持同步
老王就是我 2020-12-07
  • 打赏
  • 举报
回复
jdk版本不对,编译版本和运行版本要保持一致,至少大版本号要一致
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 21 楼 冰思雨 的回复:
[quote=引用 6 楼 慕飒潇湘 的回复:][quote=引用 5 楼 冰思雨 的回复:]把 反斜杠'/' 换成 '.' 试一下。java 后面跟的是类名,不是文件路径。
还是不行啊
  1. [root@VM-0-14-centos demo01]# java cn.itcast.day08.demo01.demo
  2. Error: Could not find or load main class cn.itcast.day08.demo01.demo
[/quote] 大哥啊,当前路径是项目路径才行,你看看你的当前路径,都跑到类文件的存放目录里面了, 如果加载所有的类都要切换路径到文件目录的话,要package有个毛用啊。 切换路径到项目路径,就是你截图里面的那个 day08-code ,然后执行 ls cn/itcast/day08/demo01/demo ,看看有没有 demo.class 文件, 如果有demo.class文件,就执行 java cn.itcast.day08.demo01.demo ,如果没有的话,就去找找这个clsss文件到底在哪。[/quote] 你就是个天才!!!
冰思雨 2020-12-07
  • 打赏
  • 举报
回复
另外,暂时别管版本了,你现在的问题,不是版本的问题,是 JVM 无法找到 class 文件。 这种情况下,如果想要尽快解决问题,就把项目的文件路径都打印出来(包括源码和class文件)。 然后,执行java命令即可。 java命令里面,最后一个参数是类名,是带有package的类名。 每个项目的类,都会有package ,而项目内的所有的package都会有一个根路径,类加载器从这个根路径开始查找和加载class文件。 如果你的项目存在多个加载类的根路径的话,可以在java后面添加-classpath参数,人为指定默认的加载根路径。
冰思雨 2020-12-07
  • 打赏
  • 举报
回复
引用 6 楼 慕飒潇湘 的回复:
[quote=引用 5 楼 冰思雨 的回复:]把 反斜杠'/' 换成 '.' 试一下。java 后面跟的是类名,不是文件路径。
还是不行啊
  1. [root@VM-0-14-centos demo01]# java cn.itcast.day08.demo01.demo
  2. Error: Could not find or load main class cn.itcast.day08.demo01.demo
[/quote] 大哥啊,当前路径是项目路径才行,你看看你的当前路径,都跑到类文件的存放目录里面了, 如果加载所有的类都要切换路径到文件目录的话,要package有个毛用啊。 切换路径到项目路径,就是你截图里面的那个 day08-code ,然后执行 ls cn/itcast/day08/demo01/demo ,看看有没有 demo.class 文件, 如果有demo.class文件,就执行 java cn.itcast.day08.demo01.demo ,如果没有的话,就去找找这个clsss文件到底在哪。
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 17 楼 icoolno1 的回复:
给你举个例子,注意java运行的位置:
  1. package test;
  2. public class Main {
  3. public static void main(String[] args) {
  4. System.out.println("Hello World!");
  5. }
  6. }
引用
PS E:\projects\other\java\test\src> javac test/Main.java --target 8 --source 8 警告: [options] 未与 -source 8 一起设置引导类路径 1 个警告 PS E:\projects\other\java\test\src> java test.Main Hello World! PS E:\projects\other\java\test\src>
我不是很懂,才学java第三天.....
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 18 楼 想做你的暖光i 的回复:
大哥 你再dos窗口里面运行class文件?
自学的课程上是这样教的啊,在dos里面编译,dos里面运行,但我想用IDEA来运行这个,代码在IDEA中运行正常,我想着不是应该试下代码发布流程的么,class文件上传到linux服务器上,结果跑不起来
  • 打赏
  • 举报
回复
大哥 你再dos窗口里面运行class文件?
八爻老骥 2020-12-07
  • 打赏
  • 举报
回复
给你举个例子,注意java运行的位置:



  1. package test;

  2. public class Main {
  3. public static void main(String[] args) {

  4. System.out.println("Hello World!");
  5. }
  6. }


引用
PS E:\projects\other\java\test\src> javac test/Main.java --target 8 --source 8
警告: [options] 未与 -source 8 一起设置引导类路径
1 个警告
PS E:\projects\other\java\test\src> java test.Main
Hello World!
PS E:\projects\other\java\test\src>
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
咋打包成jar啊。jar是啥
慕飒潇湘 2020-12-07
  • 打赏
  • 举报
回复
引用 14 楼 qq_39936465 的回复:
[quote=引用 12 楼 慕飒潇湘 的回复:][quote=引用 10 楼 老王就是我 的回复:]jdk版本不对,编译版本和运行版本要保持一致,至少大版本号要一致
版本我改过来了,但还是不行啊@qq_39936465[/quote] 你现在的问题不是java版本问题了,你现在的问题是该class中没有main 方法。 java一般在编译工具中直接打包成jar,到其他机器上运行。[/quote] 我的源代码在文章开头的时候已经贴出来了
qq_39936465 2020-12-07
  • 打赏
  • 举报
回复
引用 12 楼 慕飒潇湘 的回复:
[quote=引用 10 楼 老王就是我 的回复:]jdk版本不对,编译版本和运行版本要保持一致,至少大版本号要一致
版本我改过来了,但还是不行啊@qq_39936465[/quote] 你现在的问题不是java版本问题了,你现在的问题是该class中没有main 方法。 java一般在编译工具中直接打包成jar,到其他机器上运行。
八爻老骥 2020-12-06
  • 打赏
  • 举报
回复
这个里头要选8
慕飒潇湘 2020-12-06
  • 打赏
  • 举报
回复
按照各位大神的方法都试过了,但还是不行,不知道是哪里出问题了,我刚开始学习java,不太清除里面的门道,烦请知道的留个言... 谢谢了
慕飒潇湘 2020-12-06
  • 打赏
  • 举报
回复
引用 4 楼 icoolno1 的回复:
[quote=引用 3 楼 慕飒潇湘 的回复:][quote=引用 2 楼 icoolno1 的回复:][quote=引用 1 楼 慕飒潇湘 的回复:] 我电脑的jdk版本 我云服务器jdk版本
编译时候,要指定目标版本 javac demo.java --target 8[/quote] 我是IDEA运行的时候自动生成的,没办法指定版本啊,难道迁移到服务器上每次还需要在cmd里面执行一次这样的编译吗?那java也太繁琐了吧[/quote] IDEA里也可以设置啊 [/quote] 改完我的IEDA就没法运行了,提示java9需要指定java版本
慕飒潇湘 2020-12-06
  • 打赏
  • 举报
回复
引用 5 楼 冰思雨 的回复:
把 反斜杠'/' 换成 '.' 试一下。java 后面跟的是类名,不是文件路径。
还是不行啊
  1. [root@VM-0-14-centos demo01]# java cn.itcast.day08.demo01.demo
  2. Error: Could not find or load main class cn.itcast.day08.demo01.demo
慕飒潇湘 2020-12-06
  • 打赏
  • 举报
回复
我电脑的jdk版本 我云服务器jdk版本
冰思雨 2020-12-06
  • 打赏
  • 举报
回复
把 反斜杠'/' 换成 '.' 试一下。java 后面跟的是类名,不是文件路径。
加载更多回复(3)

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部