`
qiuqiao2000
  • 浏览: 30737 次
  • 性别: 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.properties`)中,用于配置应用程序的行为。例如,你可以定义爬虫的线程数、请求间隔时间、重试次数等。在代码中,你可以使用`java.util.Properties`类来读取这些属性,...

    java Application与java Applet的区别

    Java Application是一种独立运行的应用程序,而Java Applet则是专为网页增强设计的小型程序,二者在运行方式、工具需求、程序结构、图形用户界面构建以及权限限制等方面存在显著差异。 二、运行方式对比 1. **Java...

    javaapplication和javaapplet的区别

    - **运行位置**:Java Application通常在本地机器上运行,而Java Applet则通常部署在远程服务器上,根据客户端的请求下载并执行。 - **安全性**:由于Java Applet的运行环境较为受限,它通常被设计得更加安全,以...

    JavaApplet和JavaApplication

    ### JavaApplet与JavaApplication详解 #### 一、Java Application(应用程序) ##### 1.1 编写Java Application Java Application 类似于使用其他编程语言(如VB、VC)编写的桌面应用程序,通常以控制台方式运行...

    Shell run Java

    ### 在Unix Shell脚本中运行Java Application的知识点详解 #### 一、概述 在Unix Shell脚本中运行Java Application是一项常见的需求,特别是在自动化部署、批处理任务或集成测试等场景中。本文将详细介绍如何在...

    Java语言编程基础实验

    - **运行Java Application和Applet程序**:学习如何在DOS环境下编译和运行Java Application程序,并通过appletviewer工具展示Java Applet程序。 #### 二、实验内容 **实验1**的具体内容涉及设置环境变量: - **...

    实验一 Java程序的运行环境和HelloWorld.java程序.docx

    通过本次实验,我们不仅学会了如何设置Java的运行环境,还掌握了Java程序的基本开发流程,包括编写、编译和运行Java Application与Java Applet程序。这些基本技能是进一步学习Java编程的基础,对于初学者来说非常...

    Java Application和Applet两种方式求一元二次方程ax2+bx+c=0的根

    Java Application是独立的、可执行的程序,可以在本地计算机上直接运行,无需依赖浏览器。要解决一元二次方程,我们需要使用数学公式求解根,这些公式为: 1. 当判别式Δ=b²-4ac>0时,方程有两个不同的实数根: ...

    java实验指导书.docx

    【描述】:本实验旨在让学生掌握Java环境的搭建,包括JDK的下载、安装、配置与运行,以及编写和运行Java Application和Applet程序的基础知识。 【标签】:互联网 **实验知识点:** 1. **Java开发环境的构建** - ...

    java实验课资源

    - **运行程序**:演示了如何在命令行环境下使用 `java` 命令来运行 Java Application,以及使用 `AppletViewer` 或浏览器来运行 Java Applet。 #### 五、NetBeans 使用 - **环境搭建**:介绍了如何启动 NetBeans ...

    java实验报告1 (2).pdf

    实验报告的主题是关于Java编程的基础学习,涵盖了在Windows环境下配置Java开发工具包(JDK)的运行路径,以及在DOS环境下编译和运行Java Application和Java Applet程序。以下是详细的知识点说明: 1. **Java程序...

    java实验指导书.doc

    4. 编译与运行Java Application程序: 使用记事本编写Java源代码,保存为`.java`文件。然后在命令行中,通过`javac`命令编译源文件,生成`.class`字节码文件。最后,使用`java`命令运行字节码文件,查看程序输出。 ...

    java application

    Java应用程序可以运行在任何支持Java虚拟机(JVM)的平台上,这使得Java成为开发跨平台软件的理想选择。Java的广泛应用领域包括企业级应用、移动应用(尤其是Android)、游戏开发、大数据处理等。 ### Java小程序与...

    JavaApplication17.zip_javaApplication

    【JavaApplication17.zip_javaApplication】是一个包含Java应用程序源代码的压缩文件,主要涉及Java编程语言,特别是关于创建一个简单的记事本应用。这个压缩包里可能包含了项目的配置文件、源代码文件以及元数据...

    熟悉Java程序的编辑、编译和运行环境.doc

    掌握编写、编译、运行简单的 Java Application 和 Java Applet 程序的方法步骤 - **编写 Java Application**: - **代码示例**:创建一个简单的Java类`Hello`,包含`main`方法,用于输出“Hello, World!”到控制台...

    Java实验教案

    3. 编写并运行Java Application和Java Applet程序。 实验步骤: 1. JDK开发环境设置: - 配置环境变量PATH,指向JDK的bin目录,如:C:\Program Files\Java\jdk1.5.0\bin。 - 配置环境变量CLASSPATH,包含"."以及...

    java资料.doc

    在命令行中运行Java Application程序,需要确保程序位于当前目录中。 ``` d:\java\bin>java Ko2_1 ``` #### 2.5 Java Applet的运行 为了运行Java Applet,需要将Applet程序嵌入到HTML文件中,并使用特定的标记...

    JAVA实验报告

    实验报告涵盖了两个主要部分,实验一着重于Java开发环境的配置,而实验二则展示了如何在DOS环境下编译和运行Java Application。 在实验一中,学生需要设置JDK 5.0的运行路径,以便能够在任何目录下编译和运行Java...

Global site tag (gtag.js) - Google Analytics