作者sbrhsieh (偶尔想摆烂一下)
看板java
标题Re: [问题] JAR档是否可包含class内所import的API
时间Mon Feb 8 01:04:15 2010
※ 引述《faraway0203 (kuso, faraway)》之铭言:
: 题目可能描述的怪怪的
: 我想描述的为以下情况:
: 我写了一个程式 用到後来加入的API: java comm
: 原本目的是写完之後包成jar档丢到其他电脑run
: 原本以为其他电脑只需要装JRE就可以
: 但後来执行错误 原因为没有java comm API
: 当然当下我直接将java comm的 jar, DLL档案放入JRE
: 但觉得可能有其他方法可以不用让使用端 (只有JRE环境的电脑)这麽麻烦
: 请问该怎麽做呢?
: 非常感谢
Java Communication API(JCA) 套件要部署来使用主要是三个档案:
comm.jar
javax.comm.properties
win32com.dll(for Windows)
缺一不可。
由於他在初始化的程序上设计得不够有弹性,实际上要部署之有一些麻烦(用在
applet 应用更麻烦)。
正确的方式是:假设 client 执行你的 Java application 所使用的 JRE 安装在
%JRE% 路径。
comm.jar => %JRE%\lib\ext
javax.comm.properties => %JRE%\lib
win32com.dll => %JRE%\bin
要散布自带 JCA 套件的 Java application 通常会需要附一个安装程式,由
安装程式负责侦测 user 的 JRE,然後依照上述列表把必要的档案复制到对应
的位置(这方法有些侵略性)。
因为初始化的顺序的关系,如果你要作成由 executable jar 执行时,一并进行
安装 JCA 档案的动作是行不通的,安装好 JCA 档案後必须得重新启动你的程式。
如果要让 executable jar 把 JCA 档案从 executable jar 内 copy 到 user
的系统里,但不放在 JRE 内的话,只有在很特定的方式能够让 JCA work。这部份
你可以 google 或是到 www.javaworld.com.tw 去检索 "JCA" or "comm" 来看看
别人试验出来的可行组态。
或者是你可以考虑使用 RXTX 来代替 sun 官方的 JCA 套件。
http://www.rxtx.org/
RXTX API 设计与 sun JCA 相同(只有 package path 不同),以及小部份行为上
的差异。
http://www.javaworld.com.tw/jute/post/view?bid=5&id=269023&sty=3
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.131.105
※ 编辑: sbrhsieh 来自: 218.173.131.105 (02/08 01:13)
※ 编辑: sbrhsieh 来自: 218.173.131.105 (02/08 01:15)
1F:推 PsMonkey:文章内容与昵称不合 [逃] 02/08 01:15
2F:推 faraway0203:感谢详细的资讯 参考javaworld那篇很实用 02/09 00:32