ECLIPSE打包SWT/JFACE的问题

dengjie532054105 2008-05-21 11:34:32
我自己做了一个简单的浏览器,用SWT/JFACE做的,但是按照一般的SWT打包,然后加入需要的org.eclipse.core.runtime_3.2.0.v20060603.jar和
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar包,然后加了
package com;swt-win32-3235.dll,却不能按照正常的运行.我原来用这样的方法运行过打包好的SWT程序,这次不行.他提示的是:could not find the main class.Program will exit.但是我在清单文件里面也配置好了:下面是我的清单文件:Manifest-Version: 1.0
Class-Path: ./lib/org.eclipse.core.runtime_3.2.0.v20060603.jar
./lib/org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar
./lib/org.eclipse.jface_3.2.1.M20060908-1000.jar
Sealed: true
Main-Class: com.BrowserExample
大家帮我看看是什么问题?下面是原程序,谢谢了.

import java.net.*;
import org.eclipse.swt.*;
import org.eclipse.swt.browser.*;
import org.eclipse.jface.action.*;
import org.eclipse.jface.window.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.jface.resource.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;


public class BrowserExample extends ApplicationWindow{

/**
* Launch the application
* @param args
*/
private Browser browser;
private Text text;
private Label labelAddress;
private Label labelStatus;
public BrowserExample()
{
super(null);
addToolBar(SWT.FLAT);

}
public void run()
{
setBlockOnOpen(true);
open();
Display.getCurrent().dispose();
}


protected void configureShell(Shell shell)
{
final Display display=Display.getDefault();
super.configureShell(shell);
shell.setSize(550,350);
shell.setText("小杰子浏览器");
Image image=new Image(display,"icons/chinaz1.gif");
shell.setImage(image);

}
protected Control createContents(Composite parent)
{
Composite composite=new Composite(parent,SWT.NONE);
composite.setLayout(new GridLayout(1,false));
createBrowser(composite);
return composite;
}
private void createBrowser(Composite comp)
{
Composite composite=new Composite(comp,SWT.NONE);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
composite.setLayout(new GridLayout(3,false));
labelAddress=new Label(composite,SWT.NONE);
labelAddress.setText("地址:");
text=new Text(composite,SWT.BORDER);
GridData gridText=new GridData(GridData.FILL_HORIZONTAL);
text.setLayoutData(gridText);

Button buttonRun=new Button(composite,SWT.NULL);
buttonRun.setImage(new Image(comp.getShell().getDisplay(),"icons/run.gif"));
buttonRun.setToolTipText("转到");
browser=new Browser(composite,SWT.BORDER);
GridData gridBrowser=new GridData(GridData.FILL_BOTH);
gridBrowser.horizontalSpan=3;
browser.setLayoutData(gridBrowser);
labelStatus=new Label(composite,SWT.NULL);
labelStatus.setText("准备");
GridData gridlabelStatus=new GridData(GridData.FILL_HORIZONTAL);
gridlabelStatus.horizontalSpan=2;
labelStatus.setLayoutData(gridlabelStatus);

final ProgressBar progressBar=new ProgressBar(composite,SWT.SMOOTH);
Listener openURLListener=new Listener()
{
public void handleEvent(Event event)
{
browser.setUrl(text.getText());
}
};
buttonRun.addListener(SWT.Selection,openURLListener);
text.addListener(SWT.DefaultSelection,openURLListener);
browser.addLocationListener(new LocationListener(){
public void changing(LocationEvent event){
text.setText(event.location);
}
public void changed(LocationEvent event){

}
});
browser.addProgressListener(new ProgressListener(){
public void changed(ProgressEvent event){
progressBar.setMaximum(event.total);
progressBar.setSelection(event.current);
}
public void completed(ProgressEvent event){
progressBar.setSelection(0);
}
});
}
protected ToolBarManager createToolBarManager(int style){
ToolBarManager toolBarManager=new ToolBarManager(style);
toolBarManager.add(new backwardAction());
toolBarManager.add(new forwardAction());
toolBarManager.add(new stopAction());
toolBarManager.add(new refreshAction());
toolBarManager.add(new Separator());
toolBarManager.add(new homeAction());
return toolBarManager;
}
class backwardAction extends Action{
public backwardAction(){
setToolTipText("后退");
try{
ImageDescriptor icon=ImageDescriptor.createFromURL(new URL("file:icons/backward.gif"));
setImageDescriptor(icon);
}catch(MalformedURLException e){
System.err.println(e.getMessage());
}
}
public void run(){
browser.back();
}
}

class forwardAction extends Action{
public forwardAction(){
setToolTipText("前进");
try{
ImageDescriptor icon=ImageDescriptor.createFromURL(new URL("file:icons/forward.gif"));
setImageDescriptor(icon);
}catch(MalformedURLException e){
System.err.println(e.getMessage());
}
}
public void run(){
browser.forward();
}
}

class stopAction extends Action{
public stopAction(){
setToolTipText("停止");
try{
ImageDescriptor icon=ImageDescriptor.createFromURL(new URL("file:icons/stop.gif"));
setImageDescriptor(icon);
}catch(MalformedURLException e){
System.err.println(e.getMessage());
}
}
public void run(){
browser.stop();
}
}
class refreshAction extends Action{
public refreshAction(){
setToolTipText("刷新");
try{
ImageDescriptor icon=ImageDescriptor.createFromURL(new URL("file:icons/refresh.gif"));
setImageDescriptor(icon);
}catch(MalformedURLException e){
System.err.println(e.getMessage());
}
}
public void run(){
browser.refresh();
}
}

class homeAction extends Action{
public homeAction(){
setToolTipText("主页");
try{
ImageDescriptor icon=ImageDescriptor.createFromURL(new URL("file:icons/home.gif"));
setImageDescriptor(icon);
}catch(MalformedURLException e){
System.err.println(e.getMessage());
}
}
public void run(){
browser.setUrl("http://www.baidu.com");
}
}

public static void main(String[] args){
new BrowserExample().run();



}

}


...全文
157 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengjie532054105 2008-05-23
  • 打赏
  • 举报
回复
你们都试过了嘛?就是用ECLIPSE把我的代码拿去调试了然后打包部署试了嘛?大哥们我是初学者.我其实做这个也是玩的.也不是那样在乎结果就是遇到问题特别不爽.试试吧.
HONGDONG8800 2008-05-23
  • 打赏
  • 举报
回复
心有余而力不足啊
dengjie532054105 2008-05-23
  • 打赏
  • 举报
回复
关注也要找兄弟帮我解决一下嘛.555我都疯了.大家可以试试,真的我就是不知道为什么部署不成功.
猿话 2008-05-22
  • 打赏
  • 举报
回复
??????????????
dengjie532054105 2008-05-22
  • 打赏
  • 举报
回复
大哥不是,我设置了主类的入口,如果大哥不信可以用ECLIPSE3.2的版本,自己把我代码复制上去,试试.然后打包然后部署应用程序,我发现还是不行啊.急救啊.
motoyama57 2008-05-22
  • 打赏
  • 举报
回复
我也是同样的问题,不解......闷...
刘彬彬 2008-05-22
  • 打赏
  • 举报
回复
看你的错误信息.
应该是你没有设置程序入口类,也就是主类.
你没有按照eclipse打包的步骤一步步来,它会有提示的.
但是你也许就是在第一步,或第二步的时候,就直接finish了.嘿嘿,导致了could not find the main class.Program will exit.
ThirdDimension 2008-05-22
  • 打赏
  • 举报
回复
极度关注


软件已加入到Google Code中,可以用SVN checkout。
下载的代码导入到Eclipse中即可直接运行。

SVN 地址:
http://jzoomer.googlecode.com/svn/trunk/
可运行版本(需安装jre1.5)下载地址:
http://code.google.com/p/jzoomer/downloads/list


==========================================
软件:JZoomer
版本:1.1.1
作者:Marquis Hou<甜菜侯爵>
邮箱:marquisx.tz#gmail.com, talent_marquis#163.com

软件功能:
·动态屏幕放大(放大镜)
·颜色拾取

框架特性:
·仿Web式框架
·支持组件拖拽
·支持国际化
·可编辑系统文件
·高可扩展性


日志:
20080618 2nd
1. Bug修正:
2. 功能添加:
·添加用户手册中文版V1.1
·添加用户手册英文版V1.1
·添加ant编译文件,使用“ant package”即可轻松打包发布文件
·调整system.properties的排版,方便阅读
3. 核心调整:
·加入fatjar.jar架包,用于打包编译
4. 版本变更:
版本升级为1.1.1

20080618
1. Bux修正:
·修正工程中加载lib路径不正确的bug
·修正鼠标滚轮在停止取图监视时使用上的Bug
·修正鼠标进入窗口后,还可以开启监视的Bug
2. 功能添加:
·添加色彩信息面板
·实现取色功能,用Ctrl+C开启,双击可以直接取色至剪贴板,单击暂停/开始取色
3. 核心调整:
·在Google Code上添加了SVN地址用于维护,地址为:https://jzoomer.googlecode.com/svn/trunk/
·重构鼠标拖拽Widget和面板的方法,增强其扩展性
·添加ColorInfoPanel用于显示和拾取颜色
·在ColorAction添加ColorInfoPanel相关的资源、逻辑和方法
·添加TrackerAction用以实现对图片大小的测量(未实现)
4. 版本变更:
版本升级为1.1
5. 待做事项:
·停止监控时图片的缩放
·对图片大小的测量(width=xxxpx,height=xxxpx)
·色彩信息面板样式的美化
·build.xml文件

20080617
1. Bug修正:
·修正进出窗口时会报异常的Bug
2. 功能添加:
·将开始/暂停监控的快捷键更改为Ctrl+Z
·支持容器内部控件的拖拽(按住Ctrl键)
·支持拖拽容器时移动整个Shell(在空白处)
·拖拽时鼠标变成小手形状
·添加exit.confirm属性用以判断是否在退出时弹出提示框
3. 核心调整:
·添加canvas用于对静止截图的处理
·添加Tracker用于测量
·添加Label用于信息提示
·添加ColorAction用于对静止截图的处理
4. 版本变更:
版本升级为1.03

20080616 2nd
1. Bug修正:
·修正暂停监控时调整窗口大小,显示图像错乱的Bug
2. 功能添加:
·添加设定背景色属性background.color
3. 核心调整:
·去掉canvas,直接将采样图片放于container上,便于以后进一步在container上添加组件及操作
4. 版本变更:
·版本升级为1.02

20080616
1. Bug修正:
·暂未修正无法通过修改配置文件切换语言的Bug
2. 功能添加:
·添加使用手册英文版v1.0
·如需软件显示语言自动随系统语言切换,只需将System.properties中“locale”属性置空即可
·调整缩放范围,使其既可放大屏幕也可缩小屏幕
3. 核心调整:
·添加SWT/JFace的jar包到工程lib目录下
·BasicWindow添加对鼠标移动点击的事件监听,以实现组件可用鼠标拖拽功能
·BasicWindow添加在屏幕中央显示/随鼠标位置显示方法
·更改屏幕采样并缩放的核心算法,使其缩放质量可以调整,支持缩小屏幕,且采样速度更快
4. 版本变更:
·版本升级为1.0.1
5. 待做事项:
·使用手册英文版
·采样图片截取:只截取可见部分
·对基类添加:随鼠标拖动功能,自动在屏幕中央显示功能,自动随鼠标显示功能
·打包后无法通过修改配置文件切换语言(打包之前可以)
·整理需要到的jar包,从eclipse中提取出来放到lib目录下
·设置滚轮放大缩小可以开启/取消

20080615
1. Bug修正:
·解决内存溢出Bug
·解决字符串乱码Bug
`解决拖拽位置不正常Bug
2. 功能添加:
·添加SystemPropertiesReader类,用于解析系统配置文件system.properties
·完成软件的国际化,可根据需要切换英文/中文(暂时只能在启动前配置)
·添加快捷键和部分图标
·实现关闭到系统托盘效果
3. JZoomer v1.0 发布

20080614
1. 重新设计框架,提高其重用性
2. 实现功能:
·字符串国际化
·系统文件可编辑
·系统托盘显示
·支持滚轮缩放功能
·控件拖拽功能

20071227
1. JExplorer实现,初步了解JFace框架的设计思想,了解Action的使用方法

20070730
1. ColorPicker实现,其中含有部分放大镜功能,但有内存溢出Bug
jZoomer开源项目主页:
http://code.google.com/p/jzoomer/
发布包下载地址:http://code.google.com/p/jzoomer/downloads/list
SVN下载地址:
http://jzoomer.googlecode.com/svn/trunk/

软件名:jZoomer
版本号:1.2.0
作者:talent_marquis<甜菜侯爵>
联系方式:talent_marquis#163.com, marquisx.tz#google.com

简介:
jZoomer 是一款基于SWT/JFace的桌面应用软件
功能:
·动态放大镜功能
·静态图片缩放功能
·颜色拾取功能
·测量尺功能

特性:
·支持鼠标拖拽窗体和小控件
·支持国际化
·可扩展架构

日志:
20080621
1. Bug修正:
·修正退出时报异常的Bug
2. 功能添加:
·实现测量功能,可测量选中区域大小
3. 核心调整:
·在system.properties中添加“tray.message.show”字段用以控制是否在托盘区显示提示信息
·实现TrackerAction用以实现测量功能
4. 版本变更:
版本升级为1.2.0

20080620
1. Bug修正:
·修正程序退出时会报异常的Bug
2. 功能添加:
·实现左键单击托盘区图标,主窗口开启/隐藏功能
3. 核心调整:
4. 版本变更:
版本升级为1.1.4

20080619 2nd
1. Bug修正:
·修正开始/暂停监视切换时有时会报空指针异常的错误
2. 功能添加:
·实现静止时图片的缩放
3. 核心调整:
·动态\静止开关中对图片处理的逻辑改变,以实现静止时图片的缩放功能
·ZoomAction中zoomIn、zoomOut方法更新,支持对静止图片的缩放
4. 版本变更:
版本升级为1.1.3

20080619
1. Bug修正:
·修正取色开启时鼠标双击取色后,色彩信息显示不正常的bug
2. 功能添加:
·隐藏/取色后会在系统托盘区有信息提示
3. 核心调整:
·在trayItem中加入tooltip用于辅助信息提示
4. 版本变更:
版本升级为1.1.2

20080618 2nd
1. Bug修正:
2. 功能添加:
·添加用户手册中文版V1.1
·添加用户手册英文版V1.1
·添加ant编译文件,使用“ant package”即可轻松打包发布文件
·调整system.properties的排版,方便阅读
3. 核心调整:
·加入fatjar.jar架包,用于打包编译
4. 版本变更:
版本升级为1.1.1

20080618
1. Bux修正:
·修正工程中加载lib路径不正确的bug
·修正鼠标滚轮在停止取图监视时使用上的Bug
·修正鼠标进入窗口后,还可以开启监视的Bug
2. 功能添加:
·添加色彩信息面板
·实现取色功能,用Ctrl+C开启,双击可以直接取色至剪贴板,单击暂停/开始取色
3. 核心调整:
·在Google Code上添加了SVN地址用于维护,地址为:https://jzoomer.googlecode.com/svn/trunk/
·重构鼠标拖拽Widget和面板的方法,增强其扩展性
·添加ColorInfoPanel用于显示和拾取颜色
·在ColorAction添加ColorInfoPanel相关的资源、逻辑和方法
·添加TrackerAction用以实现对图片大小的测量(未实现)
4. 版本变更:
版本升级为1.1
5. 待做事项:
·停止监控时图片的缩放
·对图片大小的测量(width=xxxpx,height=xxxpx)
·色彩信息面板样式的美化
·build.xml文件

20080617
1. Bug修正:
·修正进出窗口时会报异常的Bug
2. 功能添加:
·将开始/暂停监控的快捷键更改为Ctrl+Z
·支持容器内部控件的拖拽(按住Ctrl键)
·支持拖拽容器时移动整个Shell(在空白处)
·拖拽时鼠标变成小手形状
·添加exit.confirm属性用以判断是否在退出时弹出提示框
3. 核心调整:
·添加canvas用于对静止截图的处理
·添加Tracker用于测量
·添加Label用于信息提示
·添加ColorAction用于对静止截图的处理
4. 版本变更:
版本升级为1.03

20080616 2nd
1. Bug修正:
·修正暂停监控时调整窗口大小,显示图像错乱的Bug
2. 功能添加:
·添加设定背景色属性background.color
3. 核心调整:
·去掉canvas,直接将采样图片放于container上,便于以后进一步在container上添加组件及操作
4. 版本变更:
·版本升级为1.02

20080616
1. Bug修正:
·暂未修正无法通过修改配置文件切换语言的Bug
2. 功能添加:
·添加使用手册英文版v1.0
·如需软件显示语言自动随系统语言切换,只需将System.properties中“locale”属性置空即可
·调整缩放范围,使其既可放大屏幕也可缩小屏幕
3. 核心调整:
·添加SWT/JFace的jar包到工程lib目录下
·BasicWindow添加对鼠标移动点击的事件监听,以实现组件可用鼠标拖拽功能
·BasicWindow添加在屏幕中央显示/随鼠标位置显示方法
·更改屏幕采样并缩放的核心算法,使其缩放质量可以调整,支持缩小屏幕,且采样速度更快
4. 版本变更:
·版本升级为1.0.1
5. 待做事项:
·使用手册英文版
·采样图片截取:只截取可见部分
·对基类添加:随鼠标拖动功能,自动在屏幕中央显示功能,自动随鼠标显示功能
·打包后无法通过修改配置文件切换语言(打包之前可以)
·整理需要到的jar包,从eclipse中提取出来放到lib目录下
·设置滚轮放大缩小可以开启/取消

20080615
1. Bug修正:
·解决内存溢出Bug
·解决字符串乱码Bug
`解决拖拽位置不正常Bug
2. 功能添加:
·添加SystemPropertiesReader类,用于解析系统配置文件system.properties
·完成软件的国际化,可根据需要切换英文/中文(暂时只能在启动前配置)
·添加快捷键和部分图标
·实现关闭到系统托盘效果
3. JZoomer v1.0 发布

20080614
1. 重新设计框架,提高其重用性
2. 实现功能:
·字符串国际化
·系统文件可编辑
·系统托盘显示
·支持滚轮缩放功能
·控件拖拽功能

20071227
1. JExplorer实现,初步了解JFace框架的设计思想,了解Action的使用方法

20070730
1. ColorPicker实现,其中含有部分放大镜功能,但有内存溢出Bug

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧