kettle8 新插件开发 调试

2023-11-11


参考
https://blog.csdn.net/u013468915/article/details/82629810

https://blog.csdn.net/zougen/article/details/80825751


基于eclipse  和maven 本地安装已经安装好

1.将  maven conf/settings.xml整体修改为
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <proxies></proxies>
    <servers></servers>
    <mirrors></mirrors>
    <profiles>
        <profile>
          <id>pentaho</id>
          <activation>
            <activeByDefault>true</activeByDefault>
          </activation>
          <repositories>
            <repository>
              <id>pentaho-public</id>
              <name>Pentaho Public</name>
              <url>http://nexus.pentaho.org/content/groups/omni</url>
              <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </releases>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
          <pluginRepositories>
            <pluginRepository>
              <id>pentaho-public</id>
              <name>Pentaho Public</name>
              <url>http://nexus.pentaho.org/content/groups/omni</url>
              <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </releases>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </pluginRepository>
          </pluginRepositories>
        </profile>
    </profiles>
    <pluginGroups>
        <pluginGroup>org.pentaho.maven.plugins</pluginGroup>
        <pluginGroup>com.pentaho.maven.plugins</pluginGroup>
        <pluginGroup>com.github.spotbugs</pluginGroup>
    </pluginGroups>
</settings>
2.到https://sourceforge.net/projects/pentaho/files/下载对应kettle版本的插件开发样本zip包kettle-sdk-plugin-assembly-8.2.0.0-342.zip
    a.将zip 解压出来kettle-sdk-plugin-assembly-8.2.0.0-342
    b.将kettle-sdk-plugin-assembly-8.2.0.0-342/kettle-sdk-step-plugin通过existing maven projects 方式导入eclipse(下载驱动时间较长)
    
    c。Plugin execution not covered by lifecycle configuration: org.pentaho.maven.plugins:license-helper-maven-plugin:1.27:check-licens
    解决c问题办法:在pom.xml build标签中添加如下元素
     <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.pentaho.maven.plugins
                                    </groupId>
                                    <artifactId>
                                        license-helper-maven-plugin
                                    </artifactId>
                                    <versionRange>[1.27,)</versionRange>
                                    <goals>
                                        <goal>check-license</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        com.soebes.maven.plugins
                                    </groupId>
                                    <artifactId>
                                        iterator-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [0.5.1,)
                                    </versionRange>
                                    <goals>
                                        <goal>iterator</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>


使用eclipse 调试kettle8.2源码
由于现在是maven管理分成多个小项目
尝试第一次将kettle 的ui项目  通过existing maven projects 方式导入eclipse
导入后项目名称为:
kettle-ui-swt
找到spoon.java 使用run as java application
报错
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
    no swt-gtk-4623 in java.library.path
    no swt-gtk in java.library.path
    Can't load library: C:\Users\26110\.swt\lib\win32\x86_64\swt-gtk-4623.dll
    Can't load library: C:\Users\26110\.swt\lib\win32\x86_64\swt-gtk.dll

    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:664)
解决办法:
修改pom.xml
<dependencies>
     <dependency>
      <groupId>org.eclipse.swt</groupId>
      <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
      <version>4.3</version>
    </dependency>
这个依赖放在<dependencies> 第一位上
找到spoon.java 使用run as java application
报错
2019/10/31 14:29:41 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:29:35.981 by 26110) : Error initializing transformation
2019/10/31 14:29:41 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:29:35.981 by 26110) : org.pentaho.ui.xul.XulException: Can not locate Xul document [ui/spoon.xul]
2019/10/31 14:29:41 - General -     at org.pentaho.ui.xul.impl.AbstractXulLoader.findDocument(AbstractXulLoader.java:512)
2019/10/31 14:29:41 - General -     at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:229)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.init(Spoon.java:865)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.createContents(Spoon.java:9142)
2019/10/31 14:29:41 - General -     at org.eclipse.jface.window.Window.create(Window.java:426)
2019/10/31 14:29:41 - General -     at org.eclipse.jface.window.Window.open(Window.java:785)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9173)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:707)
2019/10/31 14:29:41 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:29:35.981 by 26110) : Error starting Spoon shell
2019/10/31 14:29:41 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:29:35.981 by 26110) : java.lang.NullPointerException
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.init(Spoon.java:918)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.createContents(Spoon.java:9142)
2019/10/31 14:29:41 - General -     at org.eclipse.jface.window.Window.create(Window.java:426)
2019/10/31 14:29:41 - General -     at org.eclipse.jface.window.Window.open(Window.java:785)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9173)
2019/10/31 14:29:41 - General -     at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:707)

解决办法:
到https://sourceforge.net/projects/pentaho/files/Pentaho%208.2/client-tools/下载pdi-ce-8.2.0.0-342.zip(下载最大的1.2GB)
解压zip得到data-integration
将安装包data-integration\ui目录下的所有.xul和.properties文件拷贝到源码包…\kettle-ui-swt\src/main/resources\ui目录下即可解决,images文件夹不要复制覆盖

找到spoon.java 使用run as java application
报错
2019/10/31 14:43:09 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:43:04.624 by 26110) : Error starting Spoon shell
stopping
2019/10/31 14:43:09 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:43:04.624 by 26110) : java.lang.NoClassDefFoundError: org/jaxen/JaxenException
2019/10/31 14:43:09 - General -     at org.pentaho.ui.xul.impl.AbstractXulLoader.preProcess(AbstractXulLoader.java:357)
2019/10/31 14:43:09 - General -     at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:113)
2019/10/31 14:43:09 - General -     at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:128)
2019/10/31 14:43:09 - General -     at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:122)
2019/10/31 14:43:09 - General -     at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:239)
2019/10/31 14:43:09 - General -     at org.pentaho.di.ui.spoon.Spoon.init(Spoon.java:865)
2019/10/31 14:43:09 - General -     at org.pentaho.di.ui.spoon.Spoon.createContents(Spoon.java:9142)
2019/10/31 14:43:09 - General -     at org.eclipse.jface.window.Window.create(Window.java:426)
2019/10/31 14:43:09 - General -     at org.eclipse.jface.window.Window.open(Window.java:785)
2019/10/31 14:43:09 - General -     at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9173)
2019/10/31 14:43:09 - General -     at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:707)
2019/10/31 14:43:09 - General - Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException
2019/10/31 14:43:09 - General -     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
2019/10/31 14:43:09 - General -     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
2019/10/31 14:43:09 - General -     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
2019/10/31 14:43:09 - General -     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
2019/10/31 14:43:09 - General -     ... 11 more

解决办法:
在pom.xml中引用此jar包即可解决
    <dependency>
        <groupId>jaxen</groupId>
        <artifactId>jaxen</artifactId>
        <version>1.2.0</version>
    </dependency>

找到spoon.java 使用run as java application
报错
2019/10/31 14:53:38 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:53:31.968 by 26110) : Error starting Spoon shell
2019/10/31 14:53:38 - General - ERROR (version Unknown, build 0 from 2019/10/31 14:53:31.968 by 26110) : java.lang.NullPointerException
2019/10/31 14:53:38 - General -     at org.pentaho.di.ui.util.EnvironmentUtils.getUserAgent(EnvironmentUtils.java:86)
2019/10/31 14:53:38 - General -     at org.pentaho.di.ui.util.EnvironmentUtils.isUnsupportedBrowserEnvironment(EnvironmentUtils.java:61)
2019/10/31 14:53:38 - General -     at org.pentaho.di.ui.spoon.Spoon.checkEnvironment(Spoon.java:9097)
2019/10/31 14:53:38 - General -     at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9174)
2019/10/31 14:53:38 - General -     at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:707)
stopping

解决办法:
修改EnvironmentUtils.java类
protected String getUserAgent() {
    Browser browser;
    try {
      browser = new Browser(  new Shell(), SWT.NONE );
    } catch ( SWTError e ) {
      log.logError( "Could not open a browser", e );
      return  "";
    }
    Object userAgentO = browser.evaluate( "return window.navigator.userAgent;" );
    String userAgent = null;
    if(userAgentO != null) {
        userAgent = userAgentO.toString();
    }else {
        userAgent = null;
    }
    browser.close();
    return userAgent;
  }
 
 到现在kettle-ui-swt就可以启动了
 
 启动后如何连入插件的源码进行调试开发
 将
 kettle-ui-swt右键 ->build path->configure build path ->java build path->projects->add 将之前导入到eclipse中的kettle-sdk-step-plugin maven 项目添加到kettle-ui-swt项目中
  kettle-ui-swt 项目中找到Spoon.java 右键 ->debug as ->debug configurations->arguments->VMArguments添加
 -DKETTLE_PLUGIN_CLASSES=org.pentaho.di.sdk.samples.steps.demo.DemoStepMeta
 ->apply ->debug
 至此 在打开的ui中的转换-》转换中就可以找到Demo Step
 在DemoStepDialog中open方法添加断点便可进行调试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kettle8 新插件开发 调试 的相关文章

  • QT-固定全局文字大小

    问题描述 W10 将缩放与布局设置为 gt 100 时 QT的文字会放大超过原来的文字框 解决 使用这种方法是让Windows来控制缩放 而不是Qt 添加一个资源文件qt conf 内容为 Platforms WindowsArgument
  • linux 时钟漂移,Redis 实现分布式锁之Redlock 算法浅析

    保证分布式锁有效的三个属性 Safety Properties 安全性 此处也就是互斥性 任意时刻只能有一个客户端可以持有锁 Liveness Property A 无死锁 即使持有锁的客户端崩溃或被分区 也可以获得锁 Liveness P
  • pandas中groupby函数中参数ax_index和group_keys的区别

    前言 笔者在学习pandas中groupby函数时 发现ax index True False和group key True False这两个参数相近又有所不同 特写出此文供大家分享 一 首先创建一个DataFrame df pd Data
  • thymeleaf模板报红

    问题 解决 忽略所有警告或错误 1 或者忽略Thymeleaf有关警告或错误 2 2 取消这个勾 关闭IDEA对于thymeleaf的数据验证选项
  • BP神经网络的详细推导

    文章目录 概述 一 神经元模型 二 感知机与多层网络 三 误差逆传播算法 四 全局最小与局部最小 五 BP算法的改进 1 引入动量法 2 尺度变换法 3 自适应学习率调整法 六 BP神经网络的训练 1 产生数据样本集 2 确定网络的类型和结
  • QMap倒序遍历

    for QList
  • 中英文期刊卷号和期号

    一 中文期刊 国内期刊为了给期刊排序方便查询 都按照时间分卷和期 卷是期之上的时间分类 卷是从创刊开始按照年度排序的编号 期是这一年中按时间排序的编号 比如2017年3月发表的论文 按照卷号期号排可能就是 第23卷第3期 国内对期刊卷号期号
  • 【简述】VSCode使用ssh连接linux服务器并安装使用jupyter notebook/Anaconda/pytorch

    1 通过管理员获得该Unbutu服务器的IP 账号 密码 2 打开VSCode 安装扩展Remote SSH 3 在VsCode左侧边栏点击Remote Explorer使用该扩展 新建Remote 输入IP 账号并连接 4 在上方弹出窗口
  • Unix/Linux编程:fork()进程详解

    文章目录 理论 进程 fork wait exec fork 实践 验证 fork函数被调用一次但返回两次 子进程和父进程之间不共享数据空间 父子进程间的文件共享 fork的内存语义 同步信号以规避 fork 之后的竞争条件 fork 解决
  • Flutter切换页面后保持状态不刷新

    1 使用IndexedStack实现 IndexedStack继承自Stack 它的作用是显示第index个child 其它child在页面上是不可见的 但所有child的状态都被保持 所以这个Widget可以实现我们的需求 我们只需要将现
  • PointNet介绍

    论文 PointNet Deep Learning on Point Sets for 3D Classification and Segmentation 代码 https github com charlesq34 pointnet 0
  • 【无标题】C++课程学习笔记(南科大于仕琪老师)

    这几天我突然想写CSDN了 前段时间我打开了我的CSDN 发现我其实只写了3篇文章 其实写CSDN是一个好习惯 我之前这么多年都没有发现这个好习惯 现在我要求自己只有有所心得就应该写下来 一方面与大家共勉 另一方面通过和大家的交流我希望自己
  • UDS诊断之负响应码

    1 0x10服务 服务诊断会话控制 否定响应码 NRC 定义 Defination 0x12 服务器支持诊断请求中的服务标识符 Service ID 但不支持收到的子功能参数时 回复此编码 0x13 请求服务的诊断报文中的数据长度与定义不一
  • Linux虚拟化网络之路由转发实战

    一 Linux路由配置 如果要在不同网段直接通讯 需要添加路由 Linux添加路由命令如下 route add del net host target netmask Nm gw Gw dev If add 添加一条路由规则 del 删除一
  • 简单的shell文件编写:拷贝特定的可执行文件到某特定目录下。

    写这个文件夹是为了把自己在fedora9上交叉编译的可执行文件复制到arm板上便于执行 这样每次都不用输入一长串文件名了 调用这个脚本 它会自动 拷贝ARM可执行文件到指定的目录下 例子是 home stephen stephenshare
  • 平均年薪30万的深度学习算法工程师,正面临100万的人才缺口

    深度学习的突破极大推动了人工智能的发展 并广泛应用在计算机视觉 自然语言处理等领域中 谷歌 百度的IDL 腾讯的AI lab 华为等都在重金布局人工智能 同时 以深度学习为核心技术的人工智能企业不断涌现 我们耳熟能详的有 格林深瞳 商汤科技
  • 【IPv6】设置win10和win11允许访问IPv6站点

    设置win10和win11允许访问IPv6站点 步骤如下 1 打开控制面板 2 点击 网络和 Internet 3 点击 网络和共享中心 4 点击连接的网络 5 点击 属性 6 把 Internet 协议版本 6 TCP IPv6 选项勾上
  • Android调用环信的EaseUI V3.0发送语音不成功的问题。

    这两个在集成环信实现IM功能 在开发过程中遇到一个问题 发送文字 表情 图片 位置都是正常的 但是语音就是一直发送不成功 并且只是在第一次安装app登录账号之后发送语音的时候才会出现发送不成功的问题 如果把app杀掉重新打开或者退出账号重新
  • 【华为OD机试】最大股票收益【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 假设知道某段连续时间内股票价格 计算通过买入卖出可获得的最大收益 输入一个大小为 n 的数 price p1 p2 p3 p4 pn pi 是第i天的股票价格 pi
  • Quartus如何生成顶层文件里的小模块,解决波形图无法导入输入输出

    生成模块 有这么个模块叫SRAM 就可以在顶层文件里找到了 解决波形图无法导入输入输出 统一名字 文件夹名字和 qpf文件一致和顶层文件名字一样 还和波形图文件一样

随机推荐

  • nodejs npm run build 打包压缩zip文件

    步骤1 安装 npm install archiver D 步骤2 根目录下新建zip js 内容如下 const fs require fs const archiver require archiver 创建文件输出流 let outp
  • This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.

    困难 是智者的机遇 是人与人差距所在 疑惑 D pytools anaconda PyCharm 2018 3 5 helpers pycharm matplotlib backend backend interagg py 62 User
  • Vue项目中grid布局的应用

    Vue项目中grid布局的应用 一 使用背景 二 常见属性 1 grid template 属性 1 1 columns列相关配置 1 1 1 指定列的个数 1 1 2 auto fill属性 自动填充 1 1 3 fr 比例关系 1 1
  • windows向linux传送文件

    windows与Linux之间传送文件 1 用putty的内置小组件PSCP exe 此法可行 pscp exe 可从putty官方下载 然后放到 windows 的c windows system32目录下 这样cmd 命令提示符窗口 输
  • linux下使用ffmpeg录屏

    linux系统中 使用ffmpeg进行录屏与截图 把 dev fb0设备的framebuffer显示图像录制为视频 ffmpeg f fbdev framerate 10 i dev fb0 out avi 编码帧率默认值为25fps 把
  • Android查看应用签名方法

    查看keystore文件签名 查看keystore文件签名信息 前提要有keystore文件和密钥 才能够获取keystore文件的签名信息 打开 AS工具窗口栏右边的 Gradle gt Project gt app gt Tasks g
  • QtCreator设置多个qmake

    qt Creator 有时候需要设置不同qt库文件 也就是不同qmake 我们可以设置 1 Tools gt KIts 然后选择Manual gt add 然后添加Name写5 15或者其它名字 然后点击Qt Version gt Manu
  • PID算法(没办法完全理解的东西)

    快速 P 准确 I 稳定 D P Proportion 比例 就是输入偏差乘以一个常数 I Integral 积分 就是对输入偏差进行积分运算 D Derivative 微分 对输入偏差进行微分运算 输入偏差 读出的被控制对象的值 设定值
  • 24. 二叉搜索树的最近公共祖先

    题目链接 235 二叉搜索树的最近公共祖先 大概思路 题目要求 给定一颗二叉搜索树 两个确定值q p 要求q p的最近公共祖先 思路 利用搜索树的特性 当q p的值均小于遍历的节点值的时候 可以判断q p均在根节点的左子树上 小于则在右子树
  • DUKE大学BOE数据集 OCT图像积液分割数据集

    使用此数据集用来做积液分割研究 地址 http people duke edu sf59 Chiu BOE 2014 dataset htm 使用python将 mat转换为图片格式 对BOE MAT格式文件处理成图片 import cv2
  • 数据生成

    数据生成 MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 目录 数据生成 MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成 生成效果 基本描述 模型描述 程序设计 参考资料 生成效果 基本描述 1 MATLAB实现MCMC马尔
  • java常见轮询算法

    轮询算法 轮询算法就是通过一个算法 对提供的一组列表进行计算 按照一定规则取出列表中的元素 常见的有顺序模式 随机模式 加权模式 加权平滑模式 定义轮询算法的接口 轮询算法接口 public interface Balance
  • 计费服务器不响应,按小时计费的服务器不开机会计费吗

    按小时计费的服务器不开机会计费吗 内容精选 换一换 按需付费是后付费方式 可以随时开通 删除弹性云服务器 支持秒级计费 系统会根据云服务器的实际使用情况每小时出账单 并从账户余额里扣款 按需付费的弹性云服务器关机再次开机时 可能会出现由于资
  • NMOS作为开关的两种接法

    NMOS作为开关的两种接法 1 左边电路负载是接在S极对地 如果R1很小且Q1 G极一直为High 那么流过Q1的电流可能将会非常大 MOS管容易烧 2 R1 I Us VGS Vg Vs 此时VGS不一定会大于Vgs th MOS会不完全
  • html抽奖概率,求一个可挑概率的html5抽奖 圆盘的

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼圆盘抽奖 margin 0 padding 0 elm1 height 40px background color a00 elm2 height 50px background color 0a
  • mysql库的安装

    编译文件时找不到mysql库 使用以下命令查看是否安装mysql库 dpkg l grep libmysqlclient dev 安装 sudo apt get install libmysqlclient dev 安装完成可以正常编译
  • Parallels Desktop 17 发布 针对M1大幅优化

    今天 Parallels 公司发布了 Parallels Desktop 17 它对 Windows 11 和 macOS Monterey 进行了适配优化 同时为基于Apple M1 和Intel 芯片的Mac进行图形 性能提升和生产力的
  • 【.NET8】访问私有成员新姿势UnsafeAccessor(上)

    前言 前几天在 NET性能优化群里面 有群友聊到了 NET8新增的一个特性 这个类叫 UnsafeAccessor 有很多群友都不知道这个特性是干嘛的 所以我就想写一篇文章来带大家了解一下这个特性 其实在很早之前我就有关注到这个特殊的特性
  • Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)

    经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9 xx dll 或 msvcp71 dll msvcr71 dll又或者是 Net Framework 初始化之类的错误而无法正常使用 其实很多时候 只是因为你的电脑没有安
  • kettle8 新插件开发 调试

    参考 https blog csdn net u013468915 article details 82629810 https blog csdn net zougen article details 80825751 基于eclipse