【问题标题】:How to create a method out of the text file?如何从文本文件中创建方法?
【发布时间】:2011-12-26 05:14:43
【问题描述】:

我有一个包含 Java 代码的文本 (.txt) 文件!我想创建一个包含此 Java 代码的方法,然后通过程序调用该方法。

有人可以建议一种方法吗?

【问题讨论】:

标签: java compilation on-the-fly


【解决方案1】:
  1. 将.txt文件改成.java文件,
  2. 将其添加到您的 java 项目中
  3. 编译代码
  4. 执行方法

【讨论】:

  • 我也想动态不要每次都复制粘贴到编辑器里!!
【解决方案2】:

通过标准 java IO 加载文件,然后让 Groovy 为您评估它:

http://groovy.codehaus.org/Embedding+Groovy

【讨论】:

    【解决方案3】:

    【讨论】:

    • 谢谢你,但我不明白! :(
    【解决方案4】:

    使用JavaCompiler。它可以编译来自String 的代码,所以我确信它可以处理来自文本文件的代码。


    你认为我可以把它放在例如测试方法和调用方法中而不是把它放在 main 方法中吗?

    把它放在你喜欢的地方。例如。请参阅STBC 和尤其是source code。它提供了一个图形用户界面,可以在按钮单击时编译文本区域中的代码。


    这个程序需要 tools.jar 但 jre 7 没有这个!!

    您是否尝试阅读为 STBC 提供的文档?值得注意的是:

    System Requirements

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

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


    或者更短,没有 JRE 会有 JavaCompiler,只有 JDK 有。

    【讨论】:

    • 这个程序需要tools.jar但是jre 7没有这个!!
    • @KhashayarNapster 设置您的 JAVA_HOME 和 PATH 变量,使它们指向 JDK,而不是 JRE。
    【解决方案5】:

    让我们考虑一下example 它实际加载源代码,使用 JavaCompiler API 通过更简单的程序编译和执行 java 代码。

    【讨论】:

    • 真的很好!您是否认为可以将其放入例如测试方法和调用方法中,而不是将其放入主方法 id 中?方法 m = clazz.getMethod("test", new Class[] { String[].class });对象[] _args = 新对象[] { 新字符串[0] }; m.invoke(null, _args);
    • @AndrewThompson 这个例子给出了一个空指针异常!!我不能运行它!
    • @AndrewThompson 请帮帮我这个例子有一个例外,但如果这项工作对我来说是完美的!谢谢
    • @KhashayarNapster 你能告诉我们抛出这个 NPE 的代码吗?我的意思是行号?
    • 在这行!!有NPE!!但是我不明白为什么!!!! compiler.getTask(null, null, null, null, null, fileObjects).call();在代码的第 21 行!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多