`
hzh0725
  • 浏览: 82364 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

启动篇 (eclipse 3.30代码分析)

    博客分类:
  • java
阅读更多
  • 启动类

通过查看eclipse.exe文件,可以判断是 org.eclipse.equinox.launcher.Main 
在plugin org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar里面
org.eclipse.equinox.launcher.Main作者推荐只能从命令行启动,需要api调用,请使用EclipseStarter
 启动类的输入参数是在 : eclipse.ini文件里面
  • 重要属性 

osgi.install.area: eclipse 安装地方,如果你没有指定,默认是下列代码得到
ProtectionDomain domain = Main.class.getProtectionDomain();
        CodeSource source = null;
		URL result = null;
        if (domain != null)
        	source = domain.getCodeSource();
        if (source == null || domain == null) {
			if (debug)
				System.out.println("CodeSource location is null. Defaulting the install location to file:startup.jar"); //$NON-NLS-1$
			try {
				result = new URL("file:startup.jar"); //$NON-NLS-1$
			} catch (MalformedURLException e2) {
				//Ignore
			}
        }
		if (source != null)
			result = source.getLocation();
		
        String path = decode(result.getFile());
        // normalize to not have leading / so we can check the form
        File file = new File(path);
        path = file.toString().replace('\\', '/');
        // TODO need a better test for windows
        // If on Windows then canonicalize the drive letter to be lowercase.
        // remember that there may be UNC paths 
        if (File.separatorChar == '\\')
            if (Character.isUpperCase(path.charAt(0))) {
                char[] chars = path.toCharArray();
                chars[0] = Character.toLowerCase(chars[0]);
                path = new String(chars);
            }
        if (path.toLowerCase().endsWith(".jar")) //$NON-NLS-1$
            path = path.substring(0, path.lastIndexOf("/") + 1); //$NON-NLS-1$
        if (path.toLowerCase().endsWith("/plugins/")) //$NON-NLS-1$ 
        	path = path.substring(0, path.length() - "/plugins/".length()); //$NON-NLS-1$
        try {
            try {
                // create a file URL (via File) to normalize the form (e.g., put 
                // the leading / on if necessary)
                path = new File(path).toURL().getFile();
            } catch (MalformedURLException e1) {
                // will never happen.  The path is straight from a URL.  
            }
            installLocation = new URL(result.getProtocol(), result.getHost(), result.getPort(), path);
            System.getProperties().put(PROP_INSTALL_AREA, installLocation.toExternalForm());
        } catch (MalformedURLException e) {
            // TODO Very unlikely case.  log here.  
        }
 得出来的结果就是plugins的父目录
osgi.configuration.area: 默认情况是在 ${osgi.install.area}/configuration,
当然你也可以配置,它会从这个目录下面去读config.ini文件
  • API 启动类

分享到:
评论

相关推荐

    Eclipse-OSGi内核源码分析

    通过对Eclipse OSGi内核源码的分析,我们可以深入理解其工作原理,从而更好地利用它来开发高效、可扩展的应用程序。 1. **模块化系统**:OSGi的核心概念是模块,每个模块(Bundle)包含类、资源和元数据。Bundle...

    eclipse ide4.7.3源码

    9. **源码分析**:拥有Eclipse 4.7.3的源码,开发者可以深入了解IDE的内部工作流程,例如解析器如何处理Java代码,调试器如何实现,以及工作区是如何管理项目的。这对于优化性能、修复bug或者开发新的开发工具具有...

    Eclipse开发技术详解 源码

    8. **调试工具**:Eclipse的调试功能强大,源码分析可以帮助我们了解其底层实现,包括断点设置、单步执行、变量查看等。 通过深入学习"Eclipse开发技术详解 源码",开发者不仅能掌握Eclipse的基本使用,还能学习到...

    Eclipse插件开发学习笔记全篇+源码.rar

    本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...

    点击eclipse中的小猫启动项目

    本篇文章将详细阐述如何在Eclipse中配置和部署一个Web项目到Tomcat服务器,以及通过点击Eclipse的小猫图标来启动项目。 首先,为了在Eclipse中部署一个Web项目到Tomcat,你需要确保已经安装了Eclipse的Java EE版本...

    eclipse代码行数统计插件

    "eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...

    eclipse IDE 源码(eclipse IDE本身的源码) 3.6RC4版

    10. **性能优化**:Eclipse 3.6RC4版本在性能上做了很多改进,源码中可以看到如何优化代码以提高启动速度、减少内存消耗和提升整体响应性。 通过研究Eclipse IDE的源码,开发者不仅可以深入了解IDE的内部工作原理,...

    eclipse修改代码后热部署(不需要重启服务

    本篇文章将详细介绍如何在Eclipse中实现代码修改后的热部署。 首先,我们需要理解什么是热部署。热部署是一种允许开发者在运行时更新应用程序代码的技术,无需停止或重启服务器。在Eclipse中,通过启用特定的插件或...

    Eclipse启动故障全攻略:"Eclipse.ini配置错误"深度解析与修复

    Eclipse 是一个开放源代码的、可扩展的集成开发环境(IDE)。最初由 IBM 公司开发,后来由 Eclipse 基金会管理,Eclipse 支持多种编程语言,包括 Java、C/C++、Python 等,并且可以通过插件扩展支持更多语言和开发...

    eclipse统计代码工具

    将下载的插件文件`org.holon.statistic.lines_1.0.0`复制到这个目录后,无需进行任何手动配置,只需重新启动Eclipse,插件就会自动加载并集成到IDE中。 重启Eclipse后,你可以在"Window"菜单中找到"Preferences"或...

    eclipse启动时间源码

    此外,还可以使用Eclipse的内置性能分析工具(如VisualVM或JProfiler)来监控和分析启动过程中的性能瓶颈,以便针对性地进行调优。 总之,理解Eclipse启动时间源码并掌握JVM调优技术,不仅可以帮助我们提高Eclipse...

    eclipse启动时间插件

    具体到这个插件,其工作原理可能涉及到分析Eclipse的启动流程,找出耗时环节,并进行优化。 在使用这个插件时,用户只需将提供的jar包复制到Eclipse的特定目录下。Eclipse插件的安装路径通常是`plugins`或`dropins`...

    统计代码行数的Eclipse插件

    "统计代码行数的Eclipse插件"就是这样一个工具,它能够帮助开发者快速地分析和度量他们的代码库,包括注释和实际可执行代码的数量。 这个插件设计精良,经过全面测试,确保了统计结果的准确性。无论是整个工程目录...

    Eclipse项目源码+JSP+MyEclipse----Eclipse初学者的宝典

    1. Eclipse的安装和基本操作:如何启动Eclipse,创建新项目,导入源码,设置编译器和运行环境。 2. JSP基础:理解JSP语法,创建简单的JSP页面,使用内置对象,以及如何调用Servlet。 3. Servlet开发:编写Servlet...

    eclipse源代码

    `org.eclipse.core.runtime`包含了Eclipse的基础运行时框架,包括启动、配置管理、事件发布和订阅等核心功能。`org.eclipse.ui.workbench`则定义了Eclipse的工作台模型,包括视图、编辑器和透视图的管理和交互。 ...

    JavaCC语法分析器 基于Eclipse插件 能从文件读取源代码输出语法树

    在这个项目中,JavaCC生成的解析器被封装为一个Eclipse插件,用户可以直接在Eclipse内处理源代码,查看其对应的语法树,这对于理解和调试代码非常有帮助。 Test.java是测试类,通常包含用于验证解析器功能的代码。...

    eclipse文件打开插件源码

    本示例为大家讲解如何自己动手开发一款“eclipse文件打开...该源码是“跟着实例学eclipse插件开发--第三篇:数据库文档生成插件”的示例源码,教程网址:https://blog.csdn.net/jiujiya123/article/details/82384255。

    eclipse课题需求分析

    eclipse插件开发课题需求分析,包括属性图,树形图,表格视图的创建等。

    Eclipse开发的项目源程序

    这个压缩包“Eclipse开发的项目源程序”显然包含了使用Eclipse进行开发的一个或多个项目的源代码。这些源代码是程序员用Eclipse编写、调试和管理的软件应用程序的基石,它们通常以.java文件的形式存在,是理解程序...

    eclipse强制启动

    ### Eclipse强制启动详解 在日常开发工作中,Eclipse作为一款广泛使用的集成开发环境(IDE),为Java开发者提供了诸多便利。然而,在使用过程中难免会遇到一些问题,比如启动失败的情况。当遇到Eclipse无法正常启动...

Global site tag (gtag.js) - Google Analytics