Java 试图用ant编译
我试图用“ant build”编译我的项目,但我遇到了以下错误: 找不到tools.jar。希望能在 /usr/lib/jvm/java-6-openjdk/lib/tools.jar 我搜索了Java 试图用ant编译,java,ant,jvm,Java,Ant,Jvm,我试图用“ant build”编译我的项目,但我遇到了以下错误: 找不到tools.jar。希望能在 /usr/lib/jvm/java-6-openjdk/lib/tools.jar 我搜索了tools.jar,它就在/usr/lib/jdk1.7.0_01/lib/tools.jar中 创建下面这样的符号链接是个好主意吗 ln-s/usr/lib/jdk1.7.0_01/lib/tools.jar /usr/lib/jdk1.7.0_01/lib/tools.jar 嗯。。实际上,我试图创建
tools.jar
,它就在/usr/lib/jdk1.7.0_01/lib/tools.jar
中
创建下面这样的符号链接是个好主意吗
ln-s/usr/lib/jdk1.7.0_01/lib/tools.jar
/usr/lib/jdk1.7.0_01/lib/tools.jar
嗯。。实际上,我试图创建该符号链接,但随后出现以下错误:
构建失败/home/me/code/StockWatcher/BUILD.xml:29:
java.lang.UnsupportedClassVersionError:com/sun/tools/javac/Main:
不支持的major.minor版本51.0
所以我不知道最后一个错误是否是因为符号链接
Javi您对JVM的引用不同。创建从一个版本到另一个版本的符号链接实际上是个坏主意,因为您违反了版本兼容性。如果您的ant像您所说的那样使用一些属性,那么最好找到具有这些属性的文件并将其更改为您的实际位置。您的
java\u HOME
环境变量的值是多少?我相信这就是Ant用来确定JVM所在位置的方法
因此,如果将此环境变量设置为
/usr/lib/jdk1.7.0_01
,则可能会解决您的问题。不创建符号链接不是一个好主意(混合两个JDK)
Ant使用与运行Ant本身相同的Java版本。如果您想使用Java1.7,您应该指导Ant。从javac
任务文档中:
可以使用不同的编译器。这可以通过以下方式指定:
设置global build.compiler属性,这将影响
通过设置编译器,生成过程中的所有任务
属性,特定于当前任务或使用嵌套
实现的任何TypeDefed或ComponentDefed类型的元素
org.apache.tools.ant.taskdefs.compilers.CompilerAdapter。有效值
对于build.compiler属性或编译器属性:
- classic(JDK1.1/1.2的标准编译器)–javac1.1和javac1.2 可以用作别名李>
- modern(JDK1.3/1.4/1.5/1.6/1.7的标准编译器)——javac1.3和javac1.4、javac1.5和javac1.6以及javac1.7(因为Ant 1.8.2)可以用作别名。吉克斯(英国)
- Jikes编译器)
- jvc(微软SDK中的命令行编译器 对于Java/Visual J++),可以使用microsoft作为别名
- kjc(美国) kopi编译器)
- gcj(来自gcc的gcj编译器)
- sj(赛门铁克java 编译器)–symantec可用作别名。extJavac(运行 在自己的JVM中使用现代或经典)