首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

smartinvoke入门系列三——程序的打包与单独运行

2012-12-21 
smartinvoke入门系列3——程序的打包与单独运行当然,SmartInvoke程序要能够方便的打包成类似exe可执行文件的

smartinvoke入门系列3——程序的打包与单独运行

当然,SmartInvoke程序要能够方便的打包成类似exe可执行文件的形式才能算得上是一个真正的CS程序。

为了让SmartInvoke程序能够成功的打包运行,首先得在FirstWin.java入口类中添加一方法以指明程序所要加载的swf文件的路径。内容如下:

public String getMainSWF(){

??????? return "/FirstWin.swf";

}

该方法告诉SmartInvoke程序所需的swf文件为程序当前目录下的FirstWin.swf。

getMainSWF方法在这里可以返回相对于cn.smartinvoke.core.jar的相对路径,本地绝对路径,还有http地址。

注意该方法只是在程序打包导出的时候才使用,程序开发调试期间请把该方法注释掉。不然会导致调试程序无法运行。如果你不幸已经遇到这样的问题请重新启动eclipse.

?

右键First项目,选择导出 菜单,打开导出对话框,选择Java节点下的可运行的Jar文件节点。点击下一步,选择Jar文件加载后所要启动的java类,与Jar文件的存储位置,如下图:

?

?
smartinvoke入门系列三——程序的打包与单独运行
?

点击完成按钮,会在C:\cc目录下生成First.jar文件,将First_项目生成的FirstWin.swf文件及所需的运行时动态链接库文件拷贝到First.jar所在目录,新建一内容为java –jar First.jar的

Run.bat批处理文件。双击该批处理文件就可以运行我们的第一个smartinvoke程序啦。

程序的目录结构如下图:
smartinvoke入门系列三——程序的打包与单独运行
?

运行smartinvoke自带的示例

在flash builder安装目录下的cn.smartinvoke.libs目录下一Demo开头的.bat文件都是可运行示例。

?

?

at sun.reflect.NatiiveMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NatiiveMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclips.jdt.internal.jarinjarloader.jarRsrcLoader.main(jarRsrcLoader.java:56)

caused by:java.lang.NullPointerException
at cn.smartinvoke.gui.Environment.getLoaction(Unknown Source)
ar cn.smartinvoke.util.UIHelpMethod.getFullPath(Unknown Source)
at cn.smartinvoke.gui.shell.FlashShell.setAppPath(UnknownSource)
at cn.smartinvoke.core.SuperApp.init(Unknown Source)
at hvc.app.CollectionWin.<int>(CollectionWin.java:10)
at hvc.app.CollectionWin.main(CollecitonWin.java:19)
...5more

collectionWin.java

package hvc.app;

import org.eclipse.swt.widgets.Display;

import cn.smartinvoke.core.SuperApp;
import cn.smartinvoke.gui.shell.FlashShell;

public class CollectionWin extends SuperApp {
public CollectionWin(String[] args) {
this.init(args);
}
/**
* application main method
* @param args
*/
public static void main(String[] args) {

final Display display = new Display();
CollectionWin app =new CollectionWin(args);
FlashShell shell = app.getMainShell();
shell.setMinimumSize(600, 1000);

shell.open();

while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
public String getMainSWF()
{
return "/CollectionWin.swf";
}

}
第10行和第19行都是创建项目的时候自动生成的。打包之后报错是什么原因呢?请楼主指点下。qq 376987739
谢谢了

热点排行