在windows上可以运行的java程序移植到liunx上运行出错

太阳尚远 2015-01-03 09:04:19
这个小程序在windows平台编译成功了.并且可以运行一部分功能,也就是说程序会执行到一定的位置然后再出错,然而到linux环境下再次运行相同的class文件时,一开始程序就崩了.下面是终端的截图:

求大神给指导一下啊.另外,两个平台的JDK的版本是相同的. 还有.这程序 在windows上编译时需要引入的那些包在linux上是没有的,但是这好像没有影响吧,我只是把class文件移植到linux上去了啊.是可执行文件啊.
...全文
681 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
K-Darker 2015-01-14
  • 打赏
  • 举报
回复
额,可能是因为你的运行的时候带包名如com.test.Test
siriusraider 2015-01-14
  • 打赏
  • 举报
回复
跨平台的意思是编译出的字节码在JAVA虚拟机下无论在linux和windows下都能运行,不用再次开发针对某种操作系统的代码。但是如果你少包或者缺少依赖文件的话那么就没办法只有把包和依赖文件补齐才能继续。
徴心 2015-01-12
  • 打赏
  • 举报
回复
不知道你这包的路径是怎么引用的 windows 与Linux的文件路径不同 看看是不是 / 与\的区别
JPF1024 2015-01-12
  • 打赏
  • 举报
回复
少包了,要把windows上面的包添加进去
qingyuan18 2015-01-12
  • 打赏
  • 举报
回复
“还有.这程序 在windows上编译时需要引入的那些包在linux上是没有的,但是这好像没有影响吧”---怎么可能没影响,jar包要跟windows上一致才行,httpclient-*.jar上传到linux路径且运行的时候 java -cp 指定jar包的路径,其他包都是一样的处理
a12939026 2015-01-12
  • 打赏
  • 举报
回复
引用 4 楼 u013004993 的回复:
那说java可以跨平台是什么意思。这样的话就算我在这边开发好的程序送到客户那边,如果客户没有装相关的jar包岂不是没法用?
跨平台不是这个意思,就是你开发完了windows版的 不用再开发一遍linux版。
关中老男人 2015-01-12
  • 打赏
  • 举报
回复
java文件没有配置,在启动脚本中配置classpath即可。
日知己所无 2015-01-12
  • 打赏
  • 举报
回复
缺包,把Windows的都拷贝到Linux上试试
太阳尚远 2015-01-04
  • 打赏
  • 举报
回复
那说java可以跨平台是什么意思。这样的话就算我在这边开发好的程序送到客户那边,如果客户没有装相关的jar包岂不是没法用?
Coder_D 2015-01-04
  • 打赏
  • 举报
回复
少包或者包冲突
冥王之锤 2015-01-04
  • 打赏
  • 举报
回复
少httpclient-1.x.x.jar,预计还会缺少,把windows下的httpclient.jar添加对了,其他相同的按同样方法添加。
tianfang 2015-01-04
  • 打赏
  • 举报
回复
在windows平台打成jar包 包括的依赖jar。命令行用 java -jar xx.jar 执行 linux上也是运行 java -jar xx.jar 执行
sunbo624 2015-01-04
  • 打赏
  • 举报
回复
依赖的第三方类库是一定要加入classpath的
phuwan 2015-01-04
  • 打赏
  • 举报
回复
是的,客户那边必须装相关的jar包的。
姜小白- 2015-01-03
  • 打赏
  • 举报
回复
不可以的,class文件执行时依然要依赖支撑它编译的jar包。 将你在windows上编译时依赖的jar包都添加到classpath路径中,然后再执行。
chengfenmuyu 2015-01-03
  • 打赏
  • 举报
回复
很明显的错误,少包。
wjss12 2015-01-03
  • 打赏
  • 举报
回复
如果不知道,具体依赖了哪些jar包。最好是将源码在linux上再编译一次。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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