我正在尝试使用ANT脚本签署一个jar文件。我知道必须指向运行jarsigner.exe
的JDK目录,但是当我回显java.home时,它返回JRE目录。
这对javac来说不是问题,因为我可以设置可执行路径。但是,signjar并不存在。
如何更改java.home路径?当我右键单击MyComputer并转到:
属性>高级>环境变量
“PATH”变量正确指向JDK(C:\program files\java\jdk\bin
)。
更新:更改下面建议的PATH变量后,文件现在正确签名。
答案 0 :(得分:48)
在Eclipse中,Ant java.home 变量不基于Windows JAVA_HOME环境变量。相反,它被设置为项目的JRE的主目录。
要更改默认JRE(例如将其更改为JDK),您可以转到 Windows->偏好设置... 并选择 Java->已安装的JRE
要更改单个项目的JRE,您可以转到 Project-> Properties 并选择 Java Build Path 并选择 Libraries 选项卡。找到 JRE系统库并单击它,然后选择编辑并选择所需的JRE(或JDK)。
如果这不起作用,那么在运行构建文件时,您可以选择运行as-&gt; Ant Build ... 并单击 JRE 选项卡,选择< em>单独的JRE 并指定你想要的JRE。
答案 1 :(得分:14)
对我来说,蚂蚁显然拒绝听取eclipse默认的任何配置,项目JDK,并且“Ant Home Entries”的建议只是没有牵引力 - 那里没有任何关于JDK的内容。
然而,这有效:
Menu "Run" -> "External Tools" -> "External Tools Configuration".
Goto the node "Ant build", choose the ant buildfile in question.
Choose tab "JRE".
Select e.g. "Run in same JRE as workspace", or whatever you want.
答案 2 :(得分:11)
在Windows下,您需要关注:
开始 - &gt;控制面板 - &gt;系统 - &gt;高级 - &gt;环境变量。
...你需要设置 JAVA_HOME (与你提到的PATH变量不同)来引用JDK主目录,而不是bin子目录;例如“C:\ program files \ java \ jdk”。
答案 3 :(得分:8)
简单地说,在Eclipse中将JAVA版本强制实施为Ant:
在Ant文件上使用RunAs选项,然后在 JRE 标签中选择外部工具配置,定义您要使用的JDK / JRE版本。
答案 4 :(得分:4)
还要确保设置JAVA_HOME
环境变量。实际上,我通常设置JAVA_HOME
,然后将字符串“%JAVA_HOME%\bin
”添加到系统的PATH
环境变量中,这样如果Java升级或更改,只有{{1}变量将需要更改。
确保关闭所有命令提示符窗口或打开可能读取环境变量的应用程序,因为在重新启动应用程序之前通常不会注意到对环境变量的更改。
答案 5 :(得分:2)
答案 6 :(得分:1)
今天上午花了几个小时面对这个问题。我可能是这些论坛上技术最差的人。就像请求者一样,我忍受了每次提醒设置%JAVA_HOME%,每次看到这个非杰出的建议时都咬着我的舌头。最后,我思考我的笔记本电脑的JRE是否是我的JDK之前的版本(因为JRE会定期自动更新)并且我安装了最新的JDK。差异很小,源于几个星期的不同版本。我开始在jdk v 1.0865上出现此错误。 JRE是1.0866。安装后,我有jdk v1.0874和等效的JRE。那时,我指示Eclipse JRE专注于我的JDK,一切都很顺利。我的java.home println甚至反映了正确的JRE。
如此多的反馈重复了错误的回答。我强烈要求人们阅读其他人的反馈,以避免无用的冗余。小心点,SG
答案 7 :(得分:0)
如果您使用的是Eclipse,请尝试以下操作:
答案 8 :(得分:0)
转到Environment变量并添加
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_37
直到jdk路径(不包括bin文件夹)
现在将JAVA_HOME设置为路径PATH=%JAVA_HOME%\bin;
这将设置所有使用java的应用程序的java路径。
对于ANT使用,
ANT_HOME=C:\Program Files (x86)\apache-ant-1.8.2\bin;
并将ANT_HOME包含在PATH中,因此路径将显示为PATH=%JAVA_HOME%\bin;%ANT_HOME%;
答案 9 :(得分:0)
设置环境变量
这是我一直忘记的部分。因为您手动安装Ant,所以还需要手动处理设置环境变量。
对于Windows XP :要在Windows XP上设置环境变量,请右键单击“我的电脑”,然后选择“属性”。然后转到“高级”选项卡,单击底部的“环境变量”按钮。
对于Windows 7 :要在Windows 7上设置环境变量,请右键单击“计算机”,然后选择“属性”。单击Advanced System Settings,然后单击底部的Environment Variables按钮。
Windows XP和Windows 7的对话框是相同的。确保您只处理系统变量而不是用户变量。
您绝对需要的唯一环境变量是 JAVA_HOME ,它告诉Ant您的JRE的位置。如果您已经安装了JDK,那么Windows XP上可能c:\Program Files\Java\jdk1.x.x\jre
,Windows 7上可能c:\Program Files(x86)\Java\jdk1.x.x\jre
。您会注意到它们的路径中都有空格,这会导致出现问题。您需要使用损坏的名称[3]而不是完整的名称。因此,对于Windows XP,使用C:\Progra~1\Java\jdk1.x.x\jre
,对于Windows 7,如果它安装在Program Files(x86)文件夹中,则使用C:\Progra~2\Java\jdk1.6.0_26\jre
(否则使用与Windows XP相同的版本)。
仅此一点就足以使Ant工作,但为方便起见,将Ant二进制路径添加到 PATH 变量是个好主意。此变量是以分号分隔的目录列表,用于搜索可执行文件。为了能够在任何目录中运行ant,Windows需要知道ant二进制文件和java二进制文件的位置。您需要将这两者添加到 PATH 变量的末尾。对于Windows XP,您可能会添加以下内容:
;c:\java\ant\bin;C:\Progra~1\Java\jdk1.x.x\jre\bin
对于Windows 7,它看起来像这样:
;c:\java\ant\bin;C:\Progra~2\Java\jdk1.x.x\jre\bin
完成
完成此操作并应用更改后,您需要打开一个新的命令提示符,以查看变量是否设置正确。你应该能够简单地运行ant并看到这样的东西:
Buildfile: build.xml does not exist!
Build failed