📄 deploy.html
字号:
<p>在1.2 以上版本的JDK中,可以对java 命令使用<strong>-jar</strong> 参数告诉解释器应用程序以JAR形式打包<br>
。Java VM 从Main-Class 中获得信息------ 在manifest 的头部描述运行哪一个类。</p>
<pre>
<font size="2">java -jar <code>jar-file</code></font>
</pre>
<p>例如,</p>
<pre><font size="2">java -jar user/username/jbproject/myapp/myjar.jar</font>
</pre>
<p>当然,如果你的archive 在你的CLASSPATH 上或者你在JAR的相同路径下执行,你只需这样:</p>
<pre>
<font size="2">java -jar myjar.jar</font>
</pre>
<p><span class="bscan">注意:</span> 当用 <strong>-jar</strong> 参数执行一个JAR时, JRE忽视任何显式的classpath设置,如果你想在JAR<br>
文件的目录之外运行JAR文件,需要这样写:</p>
<br>
<code><font size="2">java -jar -classpath <full_path> <main_class_name></font></code>
<p><span class="bscan">See also:</span></p>
<ul>
<li><a href="../../../java.sun.com/docs/books/tutorial/jar/basics/run.html">"Running JAR-packaged software"</a> at
http://java.sun.com/docs/books/tutorial/jar/basics/run.html</li>
<li><a href="../../../java.sun.com/docs/books/tutorial/jar/basics/mod.html">"Modifying a manifest file"</a> at http://java.sun.com/docs/books/tutorial/jar/basics/mod.html</li>
<li><a href="../../../java.sun.com/docs/books/tutorial/jar/basics/update.html">"Updating a JAR file"</a> at http://java.sun.com/docs/books/tutorial/jar/basics/update.html</li>
<li><a href="../../../java.sun.com/j2se/1.3/jre/index.html">JRE download web site</a> at http://java.sun.com/j2se/1.3/jre/index.html</li>
</ul>
<a name="viewcontents"></a>
<p><font color="#000080" size="2"><b>查看归档文件archive的内容</b></font></p>
<!--BNDX="JAR files:extracting;JAR files:viewing;viewing:ZIP files;ZIP files:viewing;viewing:JAR file contents;JAR files;viewing;viewing:archive file contents;archive files:viewing"-->
<p>查看JAR内容的列表:</p>
<pre>
<font size="2">jar -tf <code>jar-file</code></font>
</pre>
<p>对ZIP文件也有效:</p>
<pre>
<font size="2">jar -tf <code>zip-file</code></font>
</pre>
<p>JAR还有其它许多用法,在命令行上键入jar 来获得帮助.</p>
<p>你可以使用很多PKWARE格式兼容ZIP文件工具来检查或更新JAR文件,如果某个工具<br>
需要ZIP扩展名,可以临时地把JAR更名为ZIP.</p>
<p><span class="bscan">Note:</span> WinZip6.3以前的版本有一个bug,不能解包或者查看有效的JAR文件,其后的版本都可以。</p>
<a name="updatejar"></a>
<p><b><font color="#000080" size="2">更新JAR文件的内容</font></b></p>
<!--BNDX="JAR files:updating from command line"-->
<p>java2 的<code><font size="2">jar.exe</font></code> 有一个 <strong>u</strong> 参数可以用来向一个已经存在的JAR文件加入新的内容。
</p>
<pre>
<font size="2">jar uf <code>jar-file input-file(s)</code></font>
</pre>
<p>这里,</p>
<p><code><font size="2">u</font></code> = 更新一个存在的JAR文件<br>
<code><font size="2">f</font></code> <font size="2"> </font> = 指定归档文件名<br>
<code><font size="2">jar-file</font></code> = 已经存在的将被更新的JAR文件<br>
<code><font size="2">input-file(s)</font></code> = 空格间隔的待加入文件列表</p>
<p>input-file(s)中的文件将覆盖与JAR文件中路径文件名完全相同的文件</p>
<p>可以同时使用<strong>m</strong>参数,指定同时更新存在的JAR的清单</p>
<pre>
<font size="2">jar umf <code>manifest</code> <code>jar-file</code></font>
</pre>
<p>这里,</p>
<p><code><font size="2">m</font></code> = 更新JAR文件的清单文件<br>
<code><font size="2">manifest</font></code> = 希望并入信息的已存在的清单文件的名称</p>
<p><span class="bscan">See also:</span></p>
<ul>
<li><a href="../../../java.sun.com/docs/books/tutorial/jar/basics/mod.html">"Modifying a manifest file"</a> at http://java.sun.com/docs/books/tutorial/jar/basics/mod.html</li>
<li><a href="../../../java.sun.com/docs/books/tutorial/jar/basics/update.html">"Updating a JAR file"</a> at http://java.sun.com/docs/books/tutorial/jar/basics/update.html</li>
<li><a href="../../../java.sun.com/j2se/1.3/docs/tooldocs/findingclasses.html">"How classes are found"</a> at http://java.sun.com/j2se/1.3/docs/tooldocs/findingclasses.html</li>
<li><a href="../../../java.sun.com/docs/books/tutorial/jar/default.htm">The "JAR Files Trail"</a> in the Java Tutorial at http://java.sun.com/docs/books/tutorial/jar/</li>
</ul>
<a name="deploy_issues"></a>
<hr>
<p><font color="#000080" size="3"><b>配置要点</b></font></p>
<!--BNDX="deployment issues:"-->
<p>最好的配置策略要回答如下问题:</p>
<ul>
<li><a href="#classpath">你的需要都在classpath上了吗?</a></li>
<li><a href="#rely">你的应用的有对JDK1.1 或者JDK1.2/3(Java2)的依赖吗?</a></li>
<li><a href="#libraries">用户已经安装了你需要的JDK之外的类库了吗?</a></li>
<li><a href="#app_or_applet">应用是一个applet还是application?</a></li>
<li><a href="#download_time">有下载时间或者服务器硬盘空间限制吗?</a></li>
</ul>
<p><a name="classpath"></a> </p>
<p><font color="#000080" size="2"><b>你的需要都在classpath上了吗?</b></font></p>
<!--BNDX="deployment issues:libraries on CLASSPATH"-->
<p>配置的首要问题是:JAR中或者calsspath没有完成你的所有需要。如果你没有把你需要的一些特别的再发布库归档到JAR文件中,那么就要保证它们在环境变量CLASSPATH
中或者在命令行Java.exe的 <strong>-classpath</strong> 参数中被正确的声明。 <strong>-classpath</strong>
参数是值得推荐的方法,因为你能够单独设置每个应用的环境参数,既不会影响别的应用,也不会被别的应用影响.</p>
<p><span class="bscan">提示:</span> 当你在JBuilder IDE中执行程序时,JBuilder能够告诉你你的classpath信息,镜像你的程序在命令行下应该如何运行.</p>
<p><span class="bscan">注意:</span> 当用<strong>-jar</strong> 参数执行一个JAR时,JRE忽视任何显式的classpath设置,如果你想在JAR文件的目录之外运行JAR文件,需要这样写: </p>
<pre>
java -jar -classpath <full_path>
<main_class_name>
</pre>
<p>怎样设置你的环境变量CALSSPATH,取决于你使用的操作系统,参见</p>
<p>"设置 the class path" at <a href="../../../java.sun.com/j2se/1.3/docs/tooldocs/tools.html">http://java.sun.com/j2se/1.3/docs/tooldocs/tools.html</a>.</p>
<a name="rely"></a>
<p><font color="#000080" size="2"><b>你的应用的有对JDK1.1 或者JDK1.2/3(Java2)的依赖吗?</b></font></p>
<!--BNDX="deployment issues:applets relying on JDK 1.1 or 1.2 ;applets:JDK versions"-->
<p>如果你在开发一个applet,这里可能会产生一个问题:一些用户的web 浏览器可能没有升级到支持JDK1.1 或之后的版本特性开发的applet,例如Swing.更多信息见<a href="../webapps/applets.html">"Working
with applets"</a> </p>
<p>JDK1.0.2兼容的浏览器不支持JAR格式的归档文件,因此要创建一个ZIP格式的归档文件.</p>
<a name="libraries"></a>
<p><b><font color="#000080" size="2">用户已经安装了你需要的JDK之外的类库了吗?</font></b></p>
<!--BNDX="deployment issues:libraries;libraries:availability"-->
<p>如果你的程序需要JDK之外的组件,你需要把它们归档到JAR文件中。JBuilder的再发布文件在jbuilder/redist/ 目录下,JDK的再发布文件在/java/lib/
和 jbuilder/java/jre/lib/ 目录下。</p>
<p><span class="bscan">注意:</span>在使用JBuilder 专业版和企业版提供Archive Builder工具时,你可以在配置向导<br>
的第4步,通过选择选项“包括需要的类和资源”来完成。这些选项保证必要的资源加载到<br>
你的JAR文件中。Archive Builder 不会把JDK加入到你的归档文件中,它假定JDK的类库<br>
已经在目的计算机上存在,通过安装JDK,JRE, 或者 <a href="../../../www.javasoft.com/products/plugin/index.html">Java
Plug-in</a> or 或者在你的安装程序中提供. See<a href="deploy_archive.html">"Using the
Archive Builder."</a></p>
<p>如果你确信你的用户在它们的环境中会有这些归档文件,由于用户已经安装了它们,或者通过<br>
你提供的某种安装过程,那么在你发布的application或者applet中就不用包含这些包了</p>
<p>如果不能确定用户具有了这些库, 则需要你提供. 尤其是在配置Applet时,你需要在服务器上提供这些库和其它必须的资源.</p>
<p><span class="bscan">重点:</span> 在JDK1.1.1中,Swing/JFC 不作为JDK的一部分发布,因此如果你用JDK1.1.1开发<br>
应用,你必须下载并发布swingall.jar来包含这些包。</p>
<p><span class="bscan">参见:</span> <a href="#redistribution">"Redistribution of
classes supplied by JBuilder"</a></p>
<a name="app_or_applet"></a>
<p><font color="#000080" size="2"><b>应用是一个applet还是application?</b></font></p>
<!--BNDX="deployment issues:applets vs. applications"-->
<p>applet和application配置策略是不同的,从严格的配置观点,主要的区别在于:</p>
<ul>
<li>对于application,你的用户需要用java.exe(在JRE中)在服务器或者它们安装后的本地来执行由你提供的类或者JAR文件。如果你的用户没有必需的JRE文件,那么你必须在你的配置工作中完成.</li>
<li>对于applet,你假定用户通过Internet 浏览器或者applet 查看器来浏览你的带有<applet>标识包含你要执行的类的HTML页面。这种情形下,你必须保证用户的浏览器支持你用来配置的JDK版本,如果不能,就要为它们的浏览器提供从Sun得到的正确的Plug-in. 更多的内容见, 见<cite>Web Application
Developer's Guide</cite> 的 <a href="../webapps/applets.html">"Working
with applets"</a>
<p><span class="bscan"><font color="#FF0000">重点</font>:</span> 在你计划使用Sun的plug-in 之前,确定你阅读了所有相关的重要文档。有几个版本的Java Plug-in 和 HTML 的转换器,因为Plug-in之间不兼容,因此一次只能安装一种,Java Plug-in推荐只在可控环境如intranet下使用,这里你清楚每个浏览器的版本和它们<br>
支持的JDK。</p>
<p>更多的信息见 <a href="../../../java.sun.com/products/plugin/default.htm">Java <span class="smaller"><sup>™</sup></span>
Plug-in</a>, http://java.sun.com/products/plugin/.</p>
</li>
</ul>
<p><a name="download_time"></a> </p>
<p><font color="#000080" size="2"><b>下载时间</b></font></p>
<!--BNDX="deployment issues:download time;download time"-->
<p>一个首要的问题是:是否归档你的应用,最大的决定因素在于下载时间和程序大小,尤其对于applet。</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -