`
smartinvoke
  • 浏览: 105687 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

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文件的存储位置,如下图:

 

 

 

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

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

程序的目录结构如下图:

 

运行smartinvoke自带的示例

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

 

 

  • 大小: 25.9 KB
  • 大小: 29.7 KB
分享到:
评论
1 楼 gyx376987739 2011-03-28  
我在打包的时候,总是不成功,是为什么呢?调试状态没问题,但是,打包成jar之后,用批处理运行的时候,报一个错误:如下
Exception in thread "main" java.lang.reflect.InvocationTargetException
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
谢谢了

相关推荐

Global site tag (gtag.js) - Google Analytics