我有一位CS教授,他坚持在我们提交我们的评分代码之前,在linux服务器上编译我们的java类。当我带他参加一个C语言课程时,他这样做是有道理的,因为我知道有时候C代码会在Linux中通过Windows进行不同的编译。通过windows在linux机器上编译java的好处是什么?
但是,我对JVM的理解是它与平台无关。这是真的还是我错过了在Linux上编译的一些好处?
我有一位CS教授,他坚持在我们提交我们的评分代码之前,在linux服务器上编译我们的java类。当我带他参加一个C语言课程时,他这样做是有道理的,因为我知道有时候C代码会在Linux中通过Windows进行不同的编译。通过windows在linux机器上编译java的好处是什么?
但是,我对JVM的理解是它与平台无关。这是真的还是我错过了在Linux上编译的一些好处?
Java是一次写入运行的。这可能是它创建的主要原因之一。 Java被编译成由Java虚拟机解释和执行的Byte代码。此外,出于性能方面的考虑,这会使用即时编译转换为本机代码。
我能想到的唯一原因可能是某些操作系统特定的东西硬编码在您的应用程序中?比如“C:\ some \ folder \ lives \ here \ on \ windows”,或者你的情况是“/ usr/local/somefile/here/i/want/to/access/on/linux”。再次不确定。
这就是我的想法。我将不得不问他,看看他为什么要这样做。 –
如果他让你硬编码操作系统特定的东西。挑战他!告诉他..听着,有一个由Java提供的'Paths'软件包,可以为我们做这项工作...没有,它确实存在。当他们意识到自己能想到快乐的想法时可以飞翔的时候,确保你拥有和彼得潘一样的热情。只是说... – Tr1gZer0
不,没有好处。只是扮演角色的JVM,就是PI。 –
只有你获得的好处是在Windows和Linux中默认的字符集是不同的,所以如果有人试图注入一些伪装成注释的恶意内容,比如\ u000d这样的Unicode转义符。你大概可以弄明白。但是,然后Unicode处理再次发生在源代码处理之前,所以我不知道它添加了多少价值 – TruckDriver
由于默认字符集,一些构建依赖于平台。等 – TruckDriver