Java程序需要打包成JAR文件才能使用"java -jar"命令执行。那么为什么我不需要使用"java -jar javac"命令来执行"javac"呢?Sun/Oracle是如何将Java程序制作成可执行二进制文件的?
我知道有一些工具可以将JAR文件转换成Windows可执行文件。但我希望我的JAR文件在Linux/OS X上也能够直接执行,而不需要使用bash脚本。
---------- 更新
我发现这个链接非常有用:https://github.com/maynooth/CS210/wiki/Convert-Java-Executable-to-Linux-Executable
我知道有一些工具可以将JAR文件转换成Windows可执行文件。但我希望我的JAR文件在Linux/OS X上也能够直接执行,而不需要使用bash脚本。
---------- 更新
我发现这个链接非常有用:https://github.com/maynooth/CS210/wiki/Convert-Java-Executable-to-Linux-Executable
javac.exe
只是一个调用相应Java类的薄包装器。它启动虚拟机(类似于java.exe
的方式),然后调用Java编译器。 - user330315javac
本身是用Java
编写的。@MadProgrammer 参考链接 - https://en.wikipedia.org/wiki/Javac - Ankit Sharmajava -cp tools.jar com.sun.tools.javac.Main
,它会与javac.exe
完全相同。此外,我认为你可以在java.exe
的源代码中找到提示(请参阅源目录中的launcher/java.c
)。 - user330315