在Windows中编译的Java是否可以在Linux中运行?

Jav*_*aLu 10 java linux redhat cross-platform

当我在Windows(Eclipse和Bluej)下使用它时,我的Java程序处于正常工作状态.我将它压缩到一个罐子里然后把它送到我的红帽子里然后砰的一声.什么都行不通 它打破了最奇怪的事情,比如文本字段设置文本不会显示,JPasswordfield刚刚消失,Java AWT ROBOT也死了......列表继续,首先我认为它必须是我的Linux JRE已经过时了,但是我安装了最新的JRE然后JDK完全没有任何改进.我有一种感觉,我想念了解Java交叉平台的能力.我还尝试删除所有的功能和内容,看看什么是破坏但似乎每一件事都打破了,除了一些主要的GUI组件和大多数后端的东西.基本上任何使用某种东西的东西都会在我脸上爆炸,例如在密码字段中创建一个文本字段...

这是我第一次发帖;)请对新手好!

谢谢!!!

解决了!!!好极了.问题解决了!!!这是因为我的Java路径没有设置,所以我的GCC/GCJ跳进而不是我的oracle java,即使我使用了java -jar xxx.jar.所以我放入java -jar xxx.jar的java目录路径,就像一个魅力.除非您设置路径,否则必须手动执行此操作

/usr/java/jdk1.6.0_21/jre/bin/java -jar xxxxx.jar

java -version检查你的真实java是否正在运行或者它是否仍然是GCJ

Ha.*_*Ha. 12

Linux用户经常使用gcj而不是java来运行java程序.检查您是否使用了正确的可执行文件


Tho*_*sen 5

是的。类和 jar 格式是有意跨平台的。

您绝对确定您的 jar 文件已正确复制到您的 Linux 机器上吗?如果您使用 ftp,那么使用二进制而不是 ascii 传输是至关重要的。

  • 如果这是一个二进制/ascii 问题,那么 .jar 文件甚至不会被视为有效可读。什么都行不通。 (2认同)

Gro*_*uez 5

检查您是否在Linux机器上使用Sun的(Oracle)JRE,而不是使用某些第三方Java实现,例如gcj等.

根据我的经验,只要您在每个目标SO上坚持使用相同的JVM /运行时供应商,Java应用程序就非常便携,但来自不同供应商的Java实现可能会彼此不同.