source: other-projects/trunk/realistic-books/packages/AntInstaller/web/manual/manual/platform.html@ 19253

Last change on this file since 19253 was 19253, checked in by davidb, 15 years ago

Establishing a source code repository for Veronica's Realistic Book's software

File size: 8.9 KB
Line 
1<!--
2 Licensed to the Apache Software Foundation (ASF) under one or more
3 contributor license agreements. See the NOTICE file distributed with
4 this work for additional information regarding copyright ownership.
5 The ASF licenses this file to You under the Apache License, Version 2.0
6 (the "License"); you may not use this file except in compliance with
7 the License. You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<html>
18
19<head>
20<meta http-equiv="Content-Language" content="en-us">
21<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
22<title>Platform Issues</title>
23</head>
24
25<h1>Platform Issues</h1>
26
27<h2>Java versions</h2>
28<h3>Java 1.5</h3>
29
30You may need a bigger stack than default, especially if you are using the built in
31XSLT engine. We recommend you use Apache Xalan; indeed, some tasks (JUnit report in XML,
32for example) may not work against the shipping XSL engine.
33
34<h3>Java 1.2</h3>
35
36
37You may sometimes see messages like
38<pre>
39A nonfatal internal JIT (3.10.107(x)) error 'chgTarg: Conditional' has
40occurred in :
41 'org/apache/tools/ant/Project.addReference
42(Ljava/lang/String;Ljava/lang/Object;)V': Interpreting method.
43 Please report this error in detail to
44 http://java.sun.com/cgi-bin/bugreport.cgi
45</pre>
46These are caused by subtle incompatibilities between the Java1.4+ compiled
47release; bugs in the Java runtime that Sun won't fix. Possible solutions:-
48<ol>
49<li>Upgrade your JVM.
50<li>Recompile Ant on a Java1.2 machine
51<li>Add <tt>-Djava.compiler=NONE</tt> to
52the value of your ANT_OPTS environment variable. This turns the JIT off.
53<li>Ignore the messages.
54</ol>
55
56
57
58
59<h2>Unix and Linux</h2>
60
61<ul>
62<li> You should use a GNU version of <tt>tar</tt> to untar the Apache
63Ant source tree, if you have downloaded this as a tar file. If you get
64wierd errors about missing files, this is the problem.
65</li>
66<li> Ant does not preserve file permissions when a file is copied, moved or
67archived, because Java does not let it read or write the permissions.
68 Use <tt>&lt;chmod&gt;</tt> to set permissions, and when creating a
69tar archive, use the <tt>mode</tt> attribute of <tt>&lt;tarfileset&gt;</tt>
70to set the permissions in the tar file, or <code>&lt;apply&gt;</code> the real tar program.
71</li>
72<li> Ant is not symbolic link aware in moves, deletes and when recursing down a tree
73of directories to build up a list of files. Unexpected things can happen.
74</li>
75<li> Linux on IA-64: apparently you need a larger heap than the default
76one (64M) to compile big projects. If you get out of heap
77errors, either increase the heap or use a forking javac. Better yet,
78use jikes for extra compilation speed.
79</li>
80
81</ul>
82
83
84<h2>Microsoft Windows</h2>
85<p>
86Windows 9x (win95, win98, win98SE and winME) are not supported in Ant1.7,
87</p>
88
89<p>
90The Ant team has retired support for these products because they are outdated and
91can expose customers to security risks. We recommend that customers who are
92still running Windows 98 or Windows Me upgrade to a newer, more secure
93operating system, as soon as possible.
94</p>
95<p>
96Customers who upgrade to Linux report improved security, richer
97functionality, and increased productivity.
98</p>
99<h2>Microsoft Windows 2K, XP and Server 2K03 </h2>
100
101<p>
102Windows 9x (win95, win98, win98SE and winME) has a batch file system which
103does not work fully with long file names, so we recommend that ant and the JDK
104are installed into directories without spaces, and with 8.3 filenames.
105The Perl and Python launcher scripts do not suffer from this limitation.
106</p>
107<p>
108All versions of windows are usually case insensitive, although mounted
109file systems (Unix drives, Clearcase views) can be case sensitive underneath,
110confusing patternsets.
111</p>
112<p>
113Ant can often not delete a directory which is open in an Explorer window.
114There is nothing we can do about this short of spawning a program to kill
115the shell before deleting directories.
116Nor can files that are in use be overwritten.
117</p>
118<p>
119 Finally, if any Ant task fails with an IOError=2, it means that whatever
120 native program Ant is trying to run, it is not on the path.
121</p>
122
123<h2>Microsoft Windows Vista</h2>
124<p>
125 There are reports of problems with Windows Vista security bringing up
126 dialog boxes asking if the user wants to run an untrusted executable
127 during an ant run, such as when the &lt;signjar&gt task runs the jarsigner.exe
128 program. This is beyond Ant's control, and stems from the OS trying to provide
129 some illusion of security by being reluctant to run unsigned native executables.
130 The latest Java versions appear to resolve this problem by having signed
131 binaries.
132</p>
133
134
135<h2>Cygwin</h2>
136
137Cygwin is not an operating system; rather it is an application suite
138running under Windows and providing some UNIX like functionality. Sun has
139not created any specific Java Development Kit or Java Runtime Environment for
140cygwin. See this link :
141<a href="http://www.inonit.com/cygwin/faq/">http://www.inonit.com/cygwin/faq/</a> .
142Only Windows path
143names are supported by JDK and JRE tools under Windows or cygwin. Relative path
144names such as "src/org/apache/tools" are supported, but Java tools do not
145understand /cygdrive/c to mean c:\.
146<p>
147The utility cygpath (used industrially in the ant script to support cygwin) can
148convert cygwin path names to Windows.
149You can use the <code>&lt;exec&gt;</code> task in ant to convert cygwin paths to Windows path, for
150instance like that :
151<pre>
152&lt;property name=&quot;some.cygwin.path&quot; value=&quot;/cygdrive/h/somepath&quot;/&gt;
153&lt;exec executable=&quot;cygpath&quot; outputproperty=&quot;windows.pathname&quot;&gt;
154 &lt;arg value=&quot;--windows&quot;/&gt;
155 &lt;arg value=&quot;${some.cygwin.path}&quot;/&gt;
156&lt;/exec&gt;
157&lt;echo message=&quot;${windows.pathname}&quot;/&gt;
158</pre>
159
160We get lots of support calls from Cygwin users. Either it is incredibly
161popular, or it is trouble. If you do use it, remember that Java is a
162Windows application, so Ant is running in a Windows process, not a
163Cygwin one. This will save us having to mark your bug reports as invalid.
164
165<h2>Apple MacOS X</h2>
166
167MacOS X is the first of the Apple platforms that Ant supports completely;
168it is treated like any other Unix.
169
170<h2>Novell Netware</h2>
171
172<p>To give the same level of sophisticated control as Ant's startup scripts on other platforms, it was decided to make the main ant startup on NetWare be via a Perl Script, "runant.pl". This is found in the bin directory (for instance - bootstrap\bin or dist\bin).</p>
173
174<p>One important item of note is that you need to set up the following to run ant:</p>
175<ul><li><code>CLASSPATH</code> - put ant.jar, xercesImpl.jar, xml-apis.jar and any other needed jars on the system classpath.</li>
176 <li><code>ANT_OPTS</code> - On NetWare, <code>ANT_OPTS</code> needs to include a parameter of the form, <nobr>"-envCWD=<code>ANT_HOME</code>"</nobr>, with <code>ANT_HOME</code> being the fully expanded location of Ant, <b>not</b> an environment variable. This is due to the fact that the NetWare System Console has no notion of a current working directory.</li>
177</ul>
178<p>It is suggested that you create up an ant.ncf that sets up these parameters, and calls <code>perl ANT_HOME/dist/bin/runant.pl</code></p>
179<p>The following is an example of such an NCF file(assuming ant is installed in <nobr>'sys:/apache-ant/'):</nobr></p>
180<code>
181 &nbsp;&nbsp;&nbsp;envset CLASSPATH=SYS:/apache-ant/bootstrap/lib/ant.jar<br>
182 &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xercesImpl.jar <br>
183 &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/xml-apis.jar <br>
184 &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/lib/optional/junit.jar <br>
185 &nbsp;&nbsp;&nbsp;envset CLASSPATH=$CLASSPATH;SYS:/apache-ant/bootstrap/lib/optional.jar <br>
186<br>
187 &nbsp;&nbsp;&nbsp;setenv ANT_OPTS=-envCWD=sys:/apache-ant <br>
188 &nbsp;&nbsp;&nbsp;envset ANT_OPTS=-envCWD=sys:/apache-ant <br>
189 &nbsp;&nbsp;&nbsp;setenv ANT_HOME=sys:/apache-ant/dist/lib <br>
190 &nbsp;&nbsp;&nbsp;envset ANT_HOME=sys:/apache-ant/dist/lib <br>
191<br>
192 &nbsp;&nbsp;&nbsp;perl sys:/apache-ant/dist/bin/runant.pl <br>
193</code>
194
195<p>Ant works on JVM version 1.3 or higher. You may have some luck running it on JVM 1.2, but serious problems have been found running Ant on JVM 1.1.7B. These problems are caused by JVM bugs that will not be fixed.</p>
196<p>JVM 1.3 is supported on Novell NetWare versions 5.1 and higher.</p>
197
198
199<h2>Other platforms</h2>
200Support for other platforms is not guaranteed to be complete, as certain
201techniques to hide platform details from build files need to be written and
202tested on every particular platform. Contributions in this area are welcome.
203
204
205</html>
Note: See TracBrowser for help on using the repository browser.