Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java程序如何绑定到JDK?_Java - Fatal编程技术网

Java程序如何绑定到JDK?

Java程序如何绑定到JDK?,java,Java,我制作了一个java程序,我想上传到一个网站上。我希望它能为每个人下载。我读了很多关于OracleOpenJDK和OcacleJDK的文章,但我不知道这是如何与我的程序联系在一起的。如果我用OracleJDK制作了我的程序,我怎样才能把它改成使用OracleOpenJDK呢 编辑: 很抱歉,我对JDK等不太了解。。。如果我理解正确,JDK就不会绑定到程序。最终用户需要在计算机上安装JDK。因为我不确定是否需要购买java许可证 如果我用OracleJDK制作了我的程序,我怎样才能把它改成使用Or

我制作了一个java程序,我想上传到一个网站上。我希望它能为每个人下载。我读了很多关于OracleOpenJDK和OcacleJDK的文章,但我不知道这是如何与我的程序联系在一起的。如果我用OracleJDK制作了我的程序,我怎样才能把它改成使用OracleOpenJDK呢

编辑:
很抱歉,我对JDK等不太了解。。。如果我理解正确,JDK就不会绑定到程序。最终用户需要在计算机上安装JDK。因为我不确定是否需要购买java许可证

如果我用OracleJDK制作了我的程序,我怎样才能把它改成使用OracleOpenJDK呢

不需要改变它

了解Java平台是由一个。任何符合这些规范的实现都可以运行任何基于Java的应用程序。为了确保兼容性,一个实现可能要经过Oracle()或Adoptium()发布的测试套件

例如,如果您使用Java11的实现编写Java应用程序,那么该应用程序可以在Java11的任何其他实现上运行。最有可能的是,该应用程序将运行Java未来版本的任何实现

Oracle JDK是Oracle的一个产品,它实现了。本产品为商用产品,在生产中使用需要付费,并提供支持。Oracle还发布了一个不受支持的免费产品,它是Java的一个实现,奇怪的是,它没有确切的名称

这两个产品都是从开源项目构建的。其他几家供应商也基于此源代码发布了Java实现。您可以使用其中任何一个构建应用程序,并使用其中任何一个运行应用程序

您使用的短语“OracleOpenJDK”不准确。虽然Oracle创建了该项目,并提供了大部分源代码,但该项目也得到了IBM、Apple和其他提供代码库重要部分的公司的支持

以下是帮助您选择供应商的流程图。blue barrel中的产品完全或几乎完全由OpenJDK项目提供的源代码构建。桶外的两个产品使用OpenJDK的部分,但有很大一部分是从其他源代码构建的,以提供其特殊功能

我希望它能为每个人下载

您的应用程序需要Java实现才能运行

  • 您的用户可以在其计算机上本地安装Java实现。然后,您可能应该构建一个包含应用程序的文件以供分发
  • 您可以在应用程序中包含捆绑的Java实现。请参阅jlink工具。然后你可以制作一个完整的自足的“双击”应用程序,它可以像其他任何应用程序一样运行。搜索堆栈溢出以了解更多信息
因为我不确定是否需要购买java许可证

有些Java实现在某些情况下需要付费,这也为我所知的所有情况购买了支持

一些Java实现是免费的。当然,除非您单独聘用一家支持服务公司,否则您不会获得有偿支持的好处

需要记住的关键概念是,OpenJDK项目只提供源代码,而不提供二进制文件/安装程序。对于二进制文件/安装程序,请按照我上面发布的流程图选择供应商。对于希望免费实现Java的新手,我建议(以前称为AdoptOpenJDK),因为这是一项涉及几乎所有其他供应商的合作工作

如果我理解正确,JDK就不会绑定到程序

的确,基于Java的应用程序从未绑定到JDK(Java实现)。部署后,Java实现可以被另一个实现替换,同时保持Java应用程序不变,无需重新编译。A首先启动,然后使用从JAR文件加载应用程序的类。JVM实际上是运行在主机操作系统之上的应用程序。在JVM之上是您的应用程序正在运行。所以:主机操作系统>JVM>你的应用程序类

这意味着您的Java类没有绑定到Java实现,而不是传统软件中的Java类

警告:我上面讨论的通常都是这种情况。GraalVM非常特别,因为它可以针对不同的运行时情况进行提前编译。但这是尖端技术,并不常用。这可能是类似的努力



我建议阅读白皮书。

如果您构建了一个自执行Jar文件(内部或旁边有所有第三方依赖项),那么任何人都应该能够在其JVM上运行它,无论它是OpenJDK还是GraalVM或其他什么。这两种实现都符合规范,因此都可以运行它。无论您使用哪种JDK(我不确定JavaFX和内部API),标准库都几乎是一样的。对不起,我对JDK的了解不多,诸如此类。。。如果我理解正确,JDK就不会绑定到程序。最终用户必须是计算机上安装的JDK。因为我不是舒尔,如果我需要购买java许可证,请看这里:总之,自执行JAR是一个Zip文件,其中包含MANIFEST.MF文件和一个“main class”