从java文件编译另一个java文件

发布于 2024-10-20 02:12:03 字数 66 浏览 7 评论 0原文

只是出于好奇。我们可以编译&从另一个java程序运行java文件? 如果是这样,您可以发送该知识源的参考吗?

Just out of curiosity. Can we compile & run a java file from another java program?
If so, can you send a reference to that knowledge source?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

£冰雨忧蓝° 2024-10-27 02:12:03

查看 Java 编译器 Api 和 < a href="http://www.javabeat.net/articles/73-the-java-60-compiler-api-1.html" rel="nofollow">这个小例子。

Take a look at Java Compiler Api and this little example.

魂归处 2024-10-27 02:12:03

如果文件中已有 java 源代码,则只需调用 java 编译器即可。从版本 1.6 开始,java 编译器内置于 JVM 库中。

接口记录在此处。

If you have the java source code already in a file, then you can just call the java compiler. The java compiler is built-in to the JVM libraries as of version 1.6.

The interface is documented here.

蓝天白云 2024-10-27 02:12:03

没有彻底阅读它,但也许 这有帮助。

Didn't read it thoroughly, but maybe this helps.

我也只是我 2024-10-27 02:12:03

如果您使用的是 Java 6,则最好的方法是通过 javax.tools.JavaCompiler 接口。

如果您使用的是较旧版本的 Java,则必须使用 Runtime.exec() 直接调用 javac,然后通过子类化 ClassLoader 来加载类数据code> 并覆盖 findClass

If you're using Java 6, the best way to do this is through the javax.tools.JavaCompiler interface.

If you're using an older version of Java, you must call javac directly using Runtime.exec(), then load the class data by subclassing ClassLoader and overriding findClass.

梦在夏天 2024-10-27 02:12:03

是的,你可以,但是你需要java编译器而不仅仅是java运行时。首先生成源代码,保存它,然后使用动态类加载(教程 http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html

Yes, you can, but you need java compiler and not only java runtime. First you generate your source, save it and then use Dynamic class loading(tutorial http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html)

平生欢 2024-10-27 02:12:03

您可以通过调用 cmd 提示符或使用 Java 代码中的 Main 类来完成此操作。

我不记得是怎么回事,但我很久以前就这样做过。

You can do it by calling the cmd prompt or use the Main class from the Java Code.

I don't know remember well how is it, but I did it a long time ago.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文