`
qiuqiao2000
  • 浏览: 29840 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

运行JavaApplication

阅读更多

Studio利用hbm配置文件生成SQL文件时,需要访问ST项目中生成的POJO类(多对多关联时,要访问中间表的PO类),所以要把代码生成器org.st.studio.generator.SqlGenerator(包含public static void main(String[] args)可以作为Java Application运行)放在ST项目中进行加载(关于如何在项目中加载插件提供的jar包,请参考《为Java项目加载类路径》),再模拟创建一个代码生成器的Java Application,然后把相关参数传给Application,最后通过运行这个Application来生成SQL文件。

public void runJavaApplication() throws CodeGenerationException { try { if (getStProject() == null) return; IJavaProject jp = JavaCore.create(getStProject().getProject()); IType type = jp.findType(SQL_GENERATOR_CLASS); String prgArgs = ""; //设置运行Java Application需要的参数,可以有多个参数,参数之间用” ”空格分开 。。。。。。 ILaunchConfiguration lc = createLaunchConfiguration(type, prgArgs); ILaunch launch = lc.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor()); IProcess process = launch.getProcesses()[0]; //任何时候只有一个过程 //等待直到LaunchConfiguration运行完成 while(!process.isTerminated()){ ; } } catch (Exception e) { Logger.log(e); } } private ILaunchConfiguration createLaunchConfiguration(IType type, String prgArgs) throws CoreException { ILaunchConfigurationType launchType = DebugPlugin.getDefault() .getLaunchManager().getLaunchConfigurationType( "org.eclipse.jdt.launching.localJavaApplication"); ILaunchConfigurationWorkingCopy config = launchType.newInstance(null, "A SqlGenerator"); // 设置此launch配置是私有的,也就是用户不可见 config.setAttribute(IDebugUIConstants.ATTR_PRIVATE, true); config.setAttribute( IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, type .getFullyQualifiedName()); config.setAttribute( IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, true); config.setAttribute( IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, getSotowerProject().getProject().getName()); config.setAttribute( IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, prgArgs); return config; }


 

 

 

代码的1319行的运行ILaunchConfiguration并获得第一个IProcess(任何时候只有一个SqlGeneratorJavaApplication在运行),然后一直等待直到IProcess运行结束。还可以通过另一种方式来运行JavaApplication

           LaunchUtil.launchInBackground(lc, ILaunchManager.RUN_MODE);

这种方式将在后台令起一个线程来运行SqlGeneratorJavaApplication

但是场景的代码生成应该是个整体,各种文件依次生成,然后场景的代码生成结束,最后对ST项目进行刷新。如果采用第二种方式,SQL文件的生成就会独立于整个场景的代码生成,其他文件都生成完成,刷新ST项目的时候,SQL文件可能还没有生成,就会导致SQL文件不会显示在ST项目中,需要用户自己再次手动刷新才能看到。所以在程序中采用的是第一种方式。LaunchUtil类的源代码请参见附件。

 

 

 

分享到:
评论

相关推荐

    网络爬虫,java属性,可以直接运行java application

    网络爬虫,根据自己得要求获取想要得信息。

    Java Application Architecture Modularity Patterns with Examples Using OSGi Part1

    Java应用架构设计:模块化模式与OSGi 英文版 中文版介绍: 全球资深Java技术专家的力作,系统、全面地讲解如何将模块化设计思想引入开发中,涵盖18个有助于实现模块化软件架构的模式 中文目录: 第一部分 模块化的...

    Java Application Architecture Modularity Patterns with Examples Using OSGi Part2

    Java应用架构设计:模块化模式与OSGi 英文版 中文版介绍: 全球资深Java技术专家的力作,系统、全面地讲解如何将模块化设计思想引入开发中,涵盖18个有助于实现模块化软件架构的模式 中文目录: 第一部分 模块化...

    Shell run Java

    在Unix Shell脚本里运行Java application

    熟悉java程序的开发

    Java源代码可在任何文本编辑器中输入,例如记事本。 所有的java源代码都应具有扩展名.java。 在包含主类的文件中,文件名应与主类的名称相同,并注意大小写

    eclipse教程

    该帮助文档包括以下内容: Eclipse入门 选择透视图 创建项目 创建Java程序 编译和运行Java程序 从命令行运行Java Application 在Eclipse中调试

    Java期末复习练习题(无答案)

    2、 要嵌入在HTML文件中运行的程序是 ( Java Application、 Java Applet)。 3、 安装JDK后,Java开发工具在 目录。 4、 声明接口的保留字是 。 5、 类的声明“public class Test extends Applet implements ...

    Java开发环境与java语言基础

    安装J2SDK,并练习设置path和classpath环境变量;编写一个打印出”HelloWorld”的Java Application程序,并编译运行;;熟悉一种目前常用的java集成开发环境的使用

    简单的五子棋游戏(java application).zip

    用java写的项目,项目可以直接运行,请放心下载使用。

    BlackBerry Java Application_Transitioning to Touch Screen Development

    指定应用程序默认情况下是否以兼容模式运行.......... 6 指定 BlackBerry 设备用户是否可更改兼容模式设置......... 7 无需额外代码的应用程序......... 7 需要额外代码的应用程序......... 7 3 基本触摸屏开发........

    JAVA 猜数字程序

    一个简单实用的JAVA猜数字程序,新手上传勿喷- -

    Java Applet 和Application 程序的区别在于运行方式不同.doc

    Java Applet 和Application 程序的区别在于运行方式不同

    portal-wrap:隐藏的appIDappKey的门户包裹组件

    运行JavaApplication com.kii.extension.portal.test.JettyServiceLoader 建立战争: ./gradlew战争 通用api-wrap-service-1.0-SNAPSHOT.war位于./build/libs 启动嵌入式Web服务之后。 本地主机:8080 / api-...

    JAVA连连看 能运行在网页上

    JAVA制作的连连看小游戏,开发平台Myclipse7.0(Eclipse理论上应该也能打开),可以运行为JAVA Application和JApplet 运行在网页上的方法: 使用bin目录下的testpage.html 和 lianliankan.jar

    java课件1(第一章)

    Java是一种计算机程序语言,用Java既可以编写嵌入在Web网页中运行的Java Applet小程序,也可以编写独立运行的Java Application。Java是当今十分流行的网络编程语言。

    java基础:简介和环境

    学习java基础部分

    java开发与运行环境

    一些java基础知识笔记,1.JDK:java开发工具包,2.JVM:java虚拟机,3.JRE:java运行环境,二、平台:API(Java Application Programming Interface)+JVM,三、Java源代码==>编译==>*.class文件(字节码文件) (*代表...

    jre-8u231-windows-x64.exe (Wndows 64位 JAVA运行环境)

    Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。 JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及...

    windows环境下运行java的脚本

    windows环境下运行java的脚本 前几天研发时遇到eclipse运行不稳定的情况,明明实现了的功能有的时候能运行到,有时运行不到,非常让人头疼。于是想在本地搭一套运行环境,方便比较。 说明:以下情况主要针对java运行...

Global site tag (gtag.js) - Google Analytics