Java程序上传到CentOS的运行问题

用eclipse写好的Java程序(已编译,.class文件)上传到CentOS服务器上可以直接运行吗?CentOS服务器已配置Java环境,在CentOS中写Java程序编译后可以运行,但在本地可以执行的.class文件上传后却不能运行,提示Could not find or load main class XXX。请问是什么原因,CentOS上运行Java应如何处理?
java环境配置在/etc/profile中,如下
图片说明
如果是在CentOS中直接写java程序就可以,在本地写完上传就不行,环境配置应该没错吧?

8个回答

补充一句,一般遇到这类问题,你可以自己解决字符带来的问题,或者对你的程序打包,比如服务程序打包成jar,web程序打包成war,你试试吧

xiaoshujun123
xiaoshujun123 回复dtylion: 其实单个class肯定是可以的,windows和linux的字节码文件.class其实是一样的,只是windows和linux的JVM是有差异的,不然怎么叫跨平台,最后还是字符集编码的问题,你想想.class也是文件,如果不符合centos字符集要求,当然在JVM执行上会出问题。解决字符编码问题不好处理,平时一般都是避免,比如在windows用客户端程序插入数据到linux的数据库等等,这个你可以自己探索探索。
接近 6 年之前 回复
dtylion
dtylion 打包成jar是可以的,有试过了,是不是单个class文件就不行呢?
接近 6 年之前 回复

java环境不一样吧,本地平台不是centos吧。字节码不一样吧

dtylion
dtylion 上传源码到CentOS编译后运行也不行。。
接近 6 年之前 回复

如果你上传源码到CentOS编译后运行也不行的话,有可能是字符编码的问题,不然怎么可能在centos写的能运行,传上去不能运行,事实上在windows
上的中文到linux里面很容易出现乱码,说明字符集改变了

dtylion
dtylion 那字符编码的问题应该如何查找和解决呢
接近 6 年之前 回复

是否文件格式不同,centos上用dos2unix命令修改一下文件格式

dtylion
dtylion 文件格式不同是指什么,我是在eclipse中编写java编译成class,class文件上传后还是class啊
接近 6 年之前 回复

还是上传源码上去编译运行吧

还可以用diff工具比较下文件

Jvm不同os上有区别,你需要把文件打包等来传递

最简单windows和Linux文件换行符都有区别,不能直接传递文件

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐