如何像实际的 Java 代码一样执行控制台或 GUI 输入?

2023-12-02

我希望能够输入在运行时(在“持久”程序执行期间)执行的java命令/代码,以相同的方式或尽可能接近地执行相同的代码(如果存在)在程序的源代码上(作为软件的一部分进行编程),使用 GUI 元素,如 jTextArea。


以下 StackOverflow 问题似乎是相关的,但是,连同它们的答案,似乎并不是我正在寻找的。

如何在 Java 中从控制台类获取输入?

在java中使用GUI进行控制台输入和输出

I don't希望“能够从特定控制台输入触发操作,并将反馈打印到控制台”,就像这些问题和答案中描述的控制台应用程序的情况一样。

我想要的是“能够从控制台(或GUI)输入执行我无法预测或控制的实际java代码”。

注意:这里的“我无法预测或控制”指的是“开发人员”......但是,如果我是输入代码的人,我当然可以预测和“控制”它,就像“用户”所做的那样。


由于java使用虚拟机环境,我认为它可能执行“运行时输入的代码”......但我不确定这样的事情是否可能。

例如,我想要运行时输入for(int i=0; i<3; i++){System.out.println(i);}在“GUI 控制台”(例如 jTextArea)中,按下 Enter 键或单击“发送”按钮后,将执行(“编译并”?),并给出与原始输出相同的输出源代码,因此:

0
1
2

所以我想了解以下内容:

  • 是否可以?
  • 如果是,我该怎么做? (或者,如果没有,最接近的替代方案是什么?)

Use the JavaCompiler。它可以编译代码String.

对于 E.G.看到STBC尤其是源代码。它提供了一个 GUI,并且可以在单击按钮时在文本区域中编译代码。

STBC GUI

但请注意:

系统要求

STBC 将在任何具有版本 1.6+ Java Plug-In* JDK(AKA SDK)的计算机上运行。

(*) STBC 使用的 API 只是编译器的公共接口tools.jar仅与 JDK 一起分发(通过 JDK 的“公共 JRE”似乎也获得了tools.jar)。这会导致运行本机 jar 或 Web Start 应用程序时出现一些不寻常的要求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何像实际的 Java 代码一样执行控制台或 GUI 输入? 的相关文章

  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 是什么决定了从 lambda 创建哪个函数式接口?

    请考虑这个例子 import java util function Consumer public class Example public static void main String args Example example new
  • JAVA - Xuggler - 组合 MP3 音频文件和 MP4 电影时播放视频

    使用 JAVA 和 Xuggler 以下代码组合 MP3 音频文件和 MP4 电影文件并输出组合的 mp4 文件 我希望在合并音频和视频文件时应自动播放输出视频文件 String inputVideoFilePath in mp4 Stri
  • java中如何连接字符串

    这是我的字符串连接代码 StringSecret java public class StringSecret public static void main String args String s new String abc s co
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • 测试弱引用

    在 Java 中测试弱引用的正确方法是什么 我最初的想法是执行以下操作 public class WeakReferenceTest public class Target private String value public Targe
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我

随机推荐