是否可以在没有 class 的情况下使用 sysout 和使用 Java 9 在 Eclipse IDE 中使用主要方法?

Is it possible to use sysout without class and main method in Eclipse IDE using Java 9?

由于 Java 9 引入了 JShell 的概念,它使我们能够在不创建 class 和方法的情况下编写代码,是否可以在中使用 Java 9 的此功能日食?

如果这不是要求 Eclipse 的功能,您可以想出一个非常基本的存根:

public static void main(String[] args) throws Exception {
     jdk.jshell.tool.JavaShellToolBuilder.builder().run();
}

执行此操作时,您可以在 IDE.

中进一步将调试控制台用作 JShell

示例屏幕截图

您可以在 Eclipse 中使用 TM Terminal 到 运行 JShell:

  • 如有必要,安装 TM Terminal(仅包含在某些 Eclipse 软件包中)
  • 在 Eclipse 中打开一个 'Terminal' 视图:Window > Show View > Other...: Terminal > Terminal
  • 启动新的本地终端
  • 运行 JShell,e。 G。在 Windows 上输入 "C:\Program Files\Java\jdk-9\bin\jshell" -v 然后输入 Enter

或者,您可以使用 Scrapbook Page,Eclipse Java IDE 的内置功能,它也适用于旧 Java 版本。您将完成代码,您可以使用项目的 Java 类:

如果您喜欢使用 JShell(从 Eclipse 或终端)来尝试代码,一个非常好的选择是使用 Maven JShell 插件和来自相应(虚拟)项目的 运行 mvn (在 Eclipse 中:右键单击项目并 运行 As -> Maven build)。

在那种情况下,JShell 知道项目依赖项中指定的所有库。

我在这里使用这个:http://www.finmath.net/finmath-experiments/montecarlo-blackscholes/

使用一些库(JavaFX、Apache commons、finmath 库)的小型 pom.xml 可能如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.finmath</groupId>
    <artifactId>finmath-experiments</artifactId>
    <version>0.1.1-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <defaultGoal>clean install jshell:run</defaultGoal>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <release>11</release>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.github.johnpoth</groupId>
                    <artifactId>jshell-maven-plugin</artifactId>
                    <version>1.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <dependencies>
        <!-- Java FX -->
        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx-base -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-base</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-swing</artifactId>
            <version>11</version>
        </dependency>

        <!-- finmath-lib -->
        <dependency>
            <groupId>net.finmath</groupId>
            <artifactId>finmath-lib</artifactId>
            <version>5.0.2</version>
        </dependency>

        <dependency>
            <groupId>net.finmath</groupId>
            <artifactId>finmath-lib-plot-extensions</artifactId>
            <version>0.3.9</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-math3</artifactId>
            <version>3.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10</version>
        </dependency>
    </dependencies>

</project>

注意:我个人更喜欢 运行在 macOS 的终端中进行此操作,因为 JShell 在那里支持“TAB 自动完成”,而在从 Eclipse 运行中进行时似乎缺少此功能。

如其他答案中所述,有多种方法可以做到这一点。但我想告诉你一个插件,它将提供比从 Eclipse 启动普通 JShell 更多的功能。

检查这个 Eclipse 插件 QuickShell

此插件将在 Eclipse 终端中启动 JShell。像这样:

您还可以 select 您现有的 java 源代码并将其 运行 作为 JShell 脚本。例如:

.jsh 和 .jpage 文件可以 运行 直接来自 Eclipse。

PS: 我是这个插件的作者。