今天给各位分享javafest的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java项目导出为jar文件 运行jar文件会报错。 缺少我已经加好的包2、FEST工具是什么意思3、Java web start入门
java项目导出为jar文件 运行jar文件会报错。 缺少我已经加好的包
你导出的jar包要用到其他jar包,那么你导出的jar包里有这样一个文件MANIFEST.MF,你有没有设置,它就是用来设置main类,和class_path的,在这里你要把需要的jar都写上,至于路径都是相对于你导出的这个jar包的相对位置。我给你一段示例:
***************************************************************************************
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 1.5.0_22-b03 (Sun Microsystems Inc.)
Main-Class: com.nari.syslog.server.Syslog4jServer
Class-Path: . lib/jna.jar lib/log4j-1.2.14.jar lib/commons-pool.jar li
b/joda-time-2.1.jar lib/syslog4j-0.9.46-bin.jar lib/h2-1.3.159.jar li
b/CollectRmiServerC.jar lib/quartz-all-1.6.4.jar lib/activemq-all-5.3
.2.jar lib/commons-collections-3.2.jar lib/dom4j-1.6.1.jar lib/jaxen-
1.1-beta-7.jar
***************************************************************************************
看到 lib/XX.jar形式了么,至于这个lib就是和导出的jar包同级目录下面的一个文件夹,然后将所需要的其他jar包都放到lib文件夹下,再运行该导出jar文件,就会找到所引用的jar包了,搞熟练了就没什么了,这些都可以借用MyEclipse的导入导出功能,这些配置性的东西都会自动生成,没必要记。
你可以继续追问,不行的话,再call我,今天上班没事干
FEST工具是什么意思
FEST-Swing是一个用于Swing GUI应用程序功能测试的java开源类库。支持模拟用户交互( 鼠标操作和键盘输入)。支持JDK中的所有Swing组件。提供简洁、强大的API来创建和维护GUI功能测试。
FEST 需要Java SE 5.0 或以后版本支持。
Java web start入门
下面是用最简单的HelloWorld方法实现一个Java Web Start的例子 工程webstart目录结构如下
目录说明如下
images 存放* jnlp文件中定义的图标文件
jar 存放classes打包后的jar文件
jnlp 存放* jnlp描述文件
src java源码
WEB INF/classes java编译后的class文件
webatart 建立步骤如下
.在webstart/src/jws下新建一HelloWorld java文件
package jws;
import javax swing *;
public class HelloWorld {
private JFrame jFrame;
private JPanel jPanel;
private JLabel label;
public HelloWorld(){
jFrame = new JFrame( HelloWorld Test Frame );
label = new JLabel( Hello world! );
jPanel = new JPanel();
jPanel add(label);
jFrame add(jPanel);
jFrame pack();
jFrame setSize( );
jFrame setLocation( );
jFrame setVisible(true);
jFrame setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);
}
// webstart 启动时执行的主方法
public static void main(String args[]){
new HelloWorld();
}
}
注 在main方法中完全可以不用写new HelloWorld(); 而只在main方法中输出一条测试语句
System out println( This is test! );
进行简单测试 打印结果会出现在步骤 java控制台中
.编译HelloWorld java 在WEB INF/classes目录下执行命令
jar cvf helloworld jar jws/* class
执行后把生成的helloworld jar包拷贝到webstart/jar/jws目录下
(在IDEA中打包使用Jar Tool插件比较方便 eclipse中可以使用Fatjar)
.从helloworld jar/META INF中解压出MNIFEST MF 更改MNIFEST MF内容
Manifest Version:
Created By: _ (Sun Microsystems Inc )
为
Manifest Version:
Created By: _ (Sun Microsystems Inc )
Main Class: jws HelloWorld
然后在WEB INF/classes目录下执行命令
jar umf MANIFEST MF helloworld jar
把新的MNIFEST MF更新到helloworld jar包中
注 如果在下面步骤 中的application desc main class= jws HelloWorld /指定了Main Class方法 此步骤可以省略
.webstart/jnlp目录下新建一HelloWorld jnlp文件
?xml version= encoding= UTF ?
! codebase 属性指出搜索应用程序资源的顶级URL 下面的icon/jar元素都是以这个URL为基本
jnlp codebase=
information
! 在 开始 运行 菜单中输入 javaws 或 javaws viewer 启动Web Start 会看到客户端已经安装的webstart应用程序
! title 应用程序标题 vendor 供应商
title/vendor 元素必须 会显示在用 javaws viewer 命令
打开的应用程序缓存查看器(Java Application Cache Viewer)中
titleHelloWorld/title
vendorLively Corporation/vendor
descriptionHelloWorld Test Example for WebStart /description
! homepage 存放有关应用程序的相关文档的URL 如help文件等 仅仅是description作用
homepage /
! icon 指定图标会显示在应用程序缓存查看器中
在查看器中新建webstart快捷方式到桌面时也会显示为快捷方式图标
只支持GIF/JPEG格式 其它格式无效
icon /
! splash 在sun的文档中提到会出现在webstart启动时的闪屏中 不过可能由于速度问题 我没有观察到
icon kind= splash /
! 允许离线启动 可以使用javaws offline命令
offline allowed/
/information
resources
! 指定客户端需要安装的j se版本 下面指定为 +
如果版本是 在链接此jnlp文件时会提示更新j se版本
j se version= + /
! 指定要下载到本地的jar文件(注意 所有的文件都需要打包才能够下载)
可以包含一些资源文件 如icons/configuration files 可以使用getResource方法取得
jar /
/resources
! application desc 必须 指定webstart启动时执行jar文件中的哪个类
application desc main class= jws HelloWorld /
/jnlp
注
其中* jnlp文件的语法的详细信息可以在sun网站上查询
其中javaws命令行的详细参数可以在sun网站上查询
.webstart目录下建一l
内容如下
a HelloWorld/a
.因为是web应用 所以webstart/WEB INF建一web xml文件
内容为
web app
/web app
即可 启动tomcat时默认会去找l文件
.webstart工程放入tomcat/webapps 启动tomcat即可
启动后会看到helloworld的swing弹出窗口 还有如下图会有一个java控制台
如果要在HelloWorld java中对本地文件进行操作 就必须对jar文件进行签名 具体步骤如下:
在HelloWorld java的main方法中对文件进行操作
File file = new File( E: + /test txt );
try {
System out println(file createNewFile());
} catch (IOException e) {
e printStackTrace();
}
.用keytool genkey产生一个私钥(使用keytool –help命令可查看keytool命令参数)
keytool genkey alias mykey keystore mykeystore keypass mypass storepass mykeystorepass validity
参数说明如下
alias mykey 指定密钥的别名 不指定的话默认为 mykey
keystore mykeystore 指定密钥数据库名 不指定则默认在Documents and Settings\Administrator下生成一个名称为 keystore的文件
keypass mypass 指定密钥密码 用jarsigner签名时需要
storepass mykeystorepass 指定密钥数据库密码 用jarsigner签名时需要
validity 密钥有效时间为 天 不指定的话默认为 天
.在WEB INF/classes目录下运行keytool命令 会提示输入一些姓名/公司/国家之类的信息
如果不想一步步输入上面信息 可以直接输入下面命令执行
keytool genkey alias mykey keystore mykeystore keypass mypass storepass mykeystorepass validity dname cn=Henry Zhou ou=JavaSoft l=SZ S=JS o=Lively c=CN
dname 参数说明如下
CN=monName
OU=anizationUnit
O=anizationName
L=localityName
S=stateName
C =country
.执行完毕在WEB INF/classes目录下生成一个名mykeystore的密钥文件 下面要用此密钥文件对jar文件进行加密
jarsigner keystore mykeystore helloworld jar mykey
helloworld jar mykey 指定要签名的jar文件和密钥的别名
运行命令后会提示输入密钥密码和密钥数据库密码
签名者证书将在六个月内过期
由于安全原因 在上面的命令中无法指定密钥密码和密钥数据库密码 即使运行
jarsigner keystore mykeystore helloworld jar mykey keypass mypass storepass mykeystorepass
仍然会提示输入密钥密码和密钥数据库密码
注
其中keytool的详细参数说明可以在sun网站上查询
其中jarsigner命令行的详细参数可以在sun网站上查询
执行后在helloworld jar/META INF中可以看到生成MYKEY DSA和MYKEY SF文件(可以通过 sigFile MKSIGN指定生成 MKSIGN SF 和 MKSIGN DSA )
其中SF文件包含了JAR中所有类的一个列表 保存了签名过程中使用的摘要算法 DSA文件是一个二进制密匙文件 扩展名是DSA还是RSA取决你使用的签名算法 默认是DSA 可以在keytool参数中指定RSA算法
.把生成的helloworld jar包拷贝到webstart/jar/jws目录下
.在webstart/jnlp/HelloWorld jnlp中添加
security
all permissions/
/security
增加了签名后 如果缺少securityall permissions//security会报错
启动/运行应用程序时发生错误
标题 JNLP Argument Solution
供应商 Lively
类别 安全错误
access denied (java io FilePermission E:\test txt write)
webstart 工程放入tomcat/webapps 启动tomcat即可 链接jnlp后发现E盘新建一test txt文件 测试成功
注 网上介绍有时候需要在webstart/WEB INF/web xml文件中配置
mime mapping
extensionjnlp/extension
mime typeapplication/x java jnlp file/mime type
/mime mapping
lishixinzhi/Article/program/Java/hx/201311/25831
关于javafest和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。