网站推广岗位职责,wordpress忘记密码怎么办,做网站php和asp哪个好,做网站可以申请国家补助吗运行单个源文件JDK增强提案 #xff08; JEP #xff09; 草案于2017年末创建#xff0c;名为“ 启动单文件源代码程序 ”#xff08;其相关的JDK问题为JDK-8192920 #xff09;。 顾名思义#xff0c;该JEP草案旨在“增强Java启动器以支持运行作为Java源代码的单个文件提… 运行单个源文件 JDK增强提案 JEP 草案于2017年末创建名为“ 启动单文件源代码程序 ”其相关的JDK问题为JDK-8192920 。 顾名思义该JEP草案旨在“增强Java启动器以支持运行作为Java源代码的单个文件提供的程序。” 换句话说正如JEP所描述的如果有一个典型的自包含的HelloWorld.java源代码文件 则只需从命令行运行java HelloWorld.java 而无需使用javac将HelloWorld.java编译为HelloWorld.class在使用Java启动器运行之前。 JEP所有者Jonathan Gibbons在将JEP引入compile -dev邮件列表时总结了这一点 该JEP草案包含一项增强| java |的建议。 启动器以支持运行作为Java源代码的单个文件提供的程序。 该程序将被编译并运行而无需显式调用javac或打包jar文件。 预期该功能的主要用例是运行非常简单的Java应用程序 JEP称其为“小型实用程序”的人员以及希望学习基本Java功能的人们。 我在博客文章“ 通过简单测试学习Java ”和“在没有IDE的情况下编译和运行Java ”中描述了类似的用例。 JEP指出在这些用例的背景下“纯粹的仪式是在运行程序之前必须对其进行编译。 此外单个源文件可能会编译为多个类文件这给“运行该程序”的简单目标增加了打包开销。 希望能够使用Java启动器直接从源代码运行程序。” 与该JEP草案相关的JDK邮件列表上有两个有趣的讨论要点。 讨论的主题之一是在Java源代码文件的第一行上放置“ shebang ”的功能该文件应按此JEP描述的方式运行例如在Groovy中使用在Linux / Unix shell。 在撰写本文时JEP草案目前在“ Shebang”文件的标题下解决了该主题并指出 使用源文件模式调用Java启动程序的“ shebang”文件通常以以下内容开头 #!/path/to/java --source 如果文件开头为则允许在源文件模式下使用此类文件 #! 在编译文件的其余部分之前将删除第一行直到但不包括第一行的内容。 …当文件以 #! 则保留第一行末尾的换行符以便任何错误消息中的行号保持不变。 与该JEP草案相关的第二个有趣的讨论点是问题即它是否与JDK 9引入的jshell产生关系。 正如Brian Goetz在 compiler-dev邮件列表上的消息中所指出的那样 “很自然并且很普遍”期望使用jshell而不是增强的java启动器来运行这些类似于shell的单一源Java源文件。 。 Goetz 在该消息中解释了为什么这并不像最初看起来的那样好因为jshell是为“良好的交互体验”而不是作为“批处理运行程序”而明确设计的。 JEP草案的当前版本在“ 替代方案”部分中对此进行了说明其中指出 我们可以将“一次性运行”任务委托给 jshell工具。 虽然这乍看起来似乎很明显但这在设计中显然是非目标 jshell 。 的 jshell工具被设计为交互式外壳许多设计决策都倾向于提供更好的交互式体验。 成为批处理运行者的额外限制会加重交互体验。 尽管目前这只是JEP的草案 但我很喜欢这个想法并认为将其添加到JDK的未来版本中将是一个很好的次要功能。 此功能将使Java新手可以更轻松地测试基本Java示例并且不会给Java新手带来不必要的额外步骤而这是他或她不习惯与某些其他通常是动态类型的编程语言一起使用的步骤。 对于经验丰富的Java开发人员来说也很方便。 我仍然发现自己写了一些Java小片段来学习某些东西的工作原理并向其他人演示它的工作原理而该草案建议的JDK增强功能将使其变得更容易一些尤其是当Java源文件编译成多个.class文件时。 这是我在Groovy开发中喜欢的功能之一并且很高兴拥有用于简单Java开发的功能。 翻译自: https://www.javacodegeeks.com/2018/02/executing-single-java-source-files-one-command.html运行单个源文件