Air 调用本地化java程序
来源:互联网 发布:淘宝长款短袖 编辑:程序博客网 时间:2024/05/18 02:45
最近在写一个客户端,使用的air但是其中要访问数据库,众所周知,air除了那个sqlite之外,是不能访问任何数据库的,只能借助于其它语言与数据库进行交互,所以这就会牵扯到air调用本地化java程序的问题,对于这个问题思考了半天,心想adobe干嘛不搞一个像java的jndi的东西,方便直接调用本地化的应用程序,后来想了想估计是担心软件移植的原因吧,不管这个了,在网上搜到的信息是,air是可以调用exe程序的,因此想要调用本地化java程序,可以将java打包成exe程序,然后给予air调用即可。
第一步,创建一个java项目,这里主要的功能就是创建一个文本,然后写点文字进去。源代码如下:
package com.file;import java.io.File;import java.io.IOException;import java.io.PrintWriter;public class CreateFile { public static void main(String[] args) {//以创建文件为例File file = new File("H:/createFile.txt");PrintWriter pw;try {file.createNewFile();pw = new PrintWriter(file);pw.write("我是新创建的文件。。。。");pw.close();System.out.println("文件已经创建成功");} catch (IOException e) {e.printStackTrace();}}}
好了,接下来就要进行打成jar包,直接用相关工具导出成jar包即可,需要注意的是,导出的时候不要忘记选择main类。
生成jar文件如下图所示:
下一步工作就是将jar打包成exe了,这里使用的工具是exe4j,exe4j运行效果如图:
出现一个欢迎界面,不要理它,直接next,
选择“java in exe ” mode,再next
输入以下你的应用的简称,和导出的路径,再next
输入一下你生成的exe名称,再next
点击右边的+号,添加一下你要加的jar包,(注:假如有第三方jar包,也可以加入进去),然后选择一下main Class ,如果选择main Class是空白的话,建议添加jar包时,使用相对路径,最好把jar包先放到你要导出的exe目录中。如相对路径为: ./CreateFile.jar。
下一步配置一下jdk的版本范围。
再点击一下,Search sequence,可以把自己的jre加入进去,这只是把目录名加进去了,在没有jvm的机器上还是不可以直接运行的。所以exe4j生成的exe并不能离开jvm。
然后直接一路next就可以了,最后点击Exit,它会询问是否保存配置,我一般选择no。
再接着打开生成exe的目录,看看里面的东西。
Exe只有248kb,这个容量比jre7小多了吧。 你也可以点击运行一下,看看是否生成文件了。
下面说一下最后的阶段,就是air调用exe文件,网上已经有了讲述,这里只是简单地展示一下代码。
新建air项目,然后code代码如下:
<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"><fx:Declarations><!-- 将非可视元素(例如服务、值对象)放在此处 --></fx:Declarations><fx:Script><![CDATA[import mx.controls.Alert;public function testExeFile():void{//使用相对路径程序不能运行var file:File = new File("D:/ShowTest/CreateFile.exe");var nativeProcessStartupInfo:NativeProcessStartupInfo;NativeApplication.nativeApplication.autoExit = true;Alert.show(file.nativePath);nativeProcessStartupInfo = new NativeProcessStartupInfo();nativeProcessStartupInfo.executable = file;var process:NativeProcess = new NativeProcess();process.start(nativeProcessStartupInfo);}]]></fx:Script><s:Button label="生成文件" click="testExeFile()" /></s:WindowedApplication>
这里使用的是绝对路径,我在使用相对路径的时候,总是不成功,这个原因比较扯。
另外在TestAirExe-app.xml加入这样一句话
<supportedProfiles>extendedDesktop</supportedProfiles>
这句话的加入是为了避免一些不必要的错误。
先把H盘的createFile.txt删除,
最后执行air程序,效果如下图:
此前已经把H盘的createFile.txt删除了,此时又有了。
注:这里只是简单地介绍了一下air与java的本地化调用,其实中间还可以涉及到调用exe的传参问题,java打成jar包后的相对路径问题等等,所幸这些问题在网上都是有答案可循,所以这些问题大部分都是可以解决的。
- Air 调用本地化java程序
- Air调用本地exe程序
- Java程序的国际化和本地化介绍
- Java程序的国际化和本地化介绍
- Java程序的国际化和本地化实例
- 让你的AIR程序,被其他应用调用。
- AIR程序调用本地默认应用程序打开本地文件
- java本地化
- 从java apk中调用 Flex air apk 的方法
- 从Java Apk中调用 Flex Air Apk 的方法
- 从java apk中调用 Flex air apk 的方法
- java程序实现utf-8转本地化编码
- Air C++调用
- AIR调用外部程序代码
- AIR NativeProcess 调用bat
- AIR调用外部程序代码
- linux 程序 国际化 本地化
- .NET程序本地化
- STDIN_FILENO的作用及与stdin 的区别
- STL vector中的operator[]方法(31)
- 初学maven(5)-使用assembly plugin实现自定义打包
- SQL Server用触发器强制执行业务规则
- Mac上面的AppStore更新Xcode 5.1.1 速度慢的问题
- Air 调用本地化java程序
- 使用ADF Faces 开发用户界面
- Jobdu 题目1144:Freckles
- C语言发送电子邮件
- hdoj.1303 Doubles 20140819
- Intent activity间的传值
- Javascript的有状态正则表达式
- 设计模式之单一职责原则、开放封闭原则、依赖倒转原则
- redmine使用交流