如何使用位于src/Hello.java
的单个源文件创建一个Makefile来编译我的Java程序,以输出我可以使用./prog
运行的文件
答案 0 :(得分:2)
(1)看看http://ant.apache.org/ - 这是一个比Java更适合Java的构建工具。例如,查看ant。中的javac
命令。
(2)你必须通过运行java虚拟机(java
)并告诉它要执行什么来运行java程序。没有./xxx方法在java中运行程序;该方法执行脚本或可执行程序,而编译的java程序是字节码,它们都不是。你需要的是创建一个小的shell脚本,调用它" Hello",用chmod
赋予它执行权限,其内容应该是这样的:
#!/bin/bash
java -cp . Hello
答案 1 :(得分:2)
Make不是构建Java程序的好工具,主要是因为它的核心设计是识别过时的源(源文件或目标文件)并对它们应用转换。 Java编译器已经处理了这种依赖性检查,并且为Java编译定义Make规则比它的价值更麻烦。
Adrian Smith已经建议过Ant。我打算建议Maven替代。
我提出这个建议的主要原因是在Maven中获得一个简单的项目非常容易:你可以告诉Maven创建整个目录结构,然后就可以了。虽然您可能不喜欢Maven创建的目录结构,但如果您在大型项目中工作,则可以获得一致性。 Maven确实有其局限性,其中一些非常痛苦,但是在你有了解周围的知识之前,你通常不会遇到它们。
至于运行Java程序,您需要在该行的某个位置调用JVM。 shell脚本是一种方法,但通常直接调用JVM更容易。如果你创建一个“可执行JAR”(Maven将为你做的,包括包含所有依赖项的选项),你可以像这样调用它:
java -jar executable.jar