在windows上的linux机器上编译java有什么好处?

在windows上的linux机器上编译java有什么好处?,java,linux,compilation,Java,Linux,Compilation,我有一位CS教授,他坚持在提交评分代码之前在linux服务器上编译java类。当我带他去上一门C课程时,他就是这么做的,这很有意义,因为我知道有时候C代码在linux和windows上的编译方式会有所不同 然而,我对JVM的理解是,它与平台无关。这是真的还是我错过了在linux上编译的一些好处?Java是一次编写,到处运行。这可能是它产生的主要原因之一。Java被编译成字节码,由Java虚拟机解释和执行。此外,出于性能原因,这将使用即时编译转换为本机代码 我能想到的唯一原因可能是某些特定于操作系

我有一位CS教授,他坚持在提交评分代码之前在linux服务器上编译java类。当我带他去上一门C课程时,他就是这么做的,这很有意义,因为我知道有时候C代码在linux和windows上的编译方式会有所不同


然而,我对JVM的理解是,它与平台无关。这是真的还是我错过了在linux上编译的一些好处?

Java是一次编写,到处运行。这可能是它产生的主要原因之一。Java被编译成字节码,由Java虚拟机解释和执行。此外,出于性能原因,这将使用即时编译转换为本机代码


我能想到的唯一原因可能是某些特定于操作系统的东西硬编码在应用程序中?例如“C:\some\folder\lives\here\on\windows”,或者在您的情况下是“/usr/local/somefile/here/i/want/to/access/on/linux”。还是不确定。

不,没有好处。只是JVM扮演了一个角色,这就是PI。您得到的唯一好处是默认字符集在Windows和Linux中是不同的,因此如果有人试图注入一些伪装成注释的恶意内容,例如Unicode转义,例如\u000d。你可能会明白的。但是,Unicode处理还是在源代码处理之前进行的,所以我不确定它会增加多少值。此外,由于默认字符集,一些构建依赖于平台。等等,这就是我的想法。我会问他,看看他为什么要这么做。如果他让你硬编码操作系统的具体事情。挑战他!告诉他。。听着,兄弟,Java提供了一个
path
包,可以为我们完成这项工作。。。不,真的,它确实存在。确保你有和那些孩子在彼得·潘身上一样的热情,当他们意识到当他们想到快乐的想法时他们可以飞翔。只是说。。。