-Xcomp可能在源代码中而不是在java编译器参数中吗?

-Xcomp可能在源代码中而不是在java编译器参数中吗?,java,Java,我是否可以在java源代码文件中编写一些内容,以便结果与使用参数-Xcomp运行java文件时的结果相同? 我想知道它,因为我想将文件发送给不使用-Xcomp的其他人,并且我希望输出是相同的。简单的回答是:你不能这样做 无法在Java程序的源代码中为该程序设置JVM选项。这些选项都是在JVM启动应用程序代码之前处理的,并且(在几乎所有情况下)在运行时都没有用于更改它们的API (使用-D..选项设置的属性除外。可以通过系统属性对象设置相同的属性。但要使其真正起作用,属性值需要在使用之前由应用程序

我是否可以在java源代码文件中编写一些内容,以便结果与使用参数-Xcomp运行java文件时的结果相同?
我想知道它,因为我想将文件发送给不使用-Xcomp的其他人,并且我希望输出是相同的。

简单的回答是:你不能这样做

无法在Java程序的源代码中为该程序设置JVM选项。这些选项都是在JVM启动应用程序代码之前处理的,并且(在几乎所有情况下)在运行时都没有用于更改它们的API

(使用
-D..
选项设置的属性除外。可以通过
系统
属性对象设置相同的属性。但要使其真正起作用,属性值需要在使用之前由应用程序代码设置。在许多情况下,很难或不可能实现这一点。。。给定相应的JavaSE功能自身初始化的方式。)

也可以编写一个Java程序来启动第二个Java程序。如果您这样做,第一个程序可以为第二个程序设置它喜欢的任何命令选项


如果您的输出取决于是否设置了
-Xcomp
,则有问题:

  • 如果您的应用程序是一个性能基准,那么设置
    -Xcomp
    将给出不切实际的性能数据

  • 否则,输出中的差异表明代码是不确定的。如果是“按设计”的,那么您应该期待差异。如果不是,那么您的代码中可能存在错误。(并且设置
    -Xcomp
    不会可靠地消除与平台和硬件差异相关的不确定。)