iCAx开思网

标题: PROE二次开发手把手教材(J-link版)V5.0——起始类的结构 [打印本页]

作者: 腾飞出品    时间: 2009-1-10 00:28
标题: PROE二次开发手把手教材(J-link版)V5.0——起始类的结构
PROE二次开发手把手教材(J-link版)V5.0——起始类的结构
(看贴须知:该帖子为连载版,如遇到下面内容不清楚的地方,请查看本人发布在论坛上的前面几篇帖子)
 
         protk.dat文件中,有一行表示J-link程序执行的起始类,即java_app_class  行,下面说明起始类的结构。
J-link中,一个起始类至少应该包含如下内容:
1.
起始方法—start(),学过java的话,应该知道java类在编译执行时依靠main()方法,而大家学习J-link时会发现所有类都没有main方法,因为J-link类中 start()方法的作用相当于main()方法。
2.
结束方法——stop(),当调用J-link程序的模型关闭并在内存中拭除时将调用该方法。
注意:须说明的两点是,第一,起始方法与结束方法的名称都是可以任意设定的,但是其名称必须与protk.dat中注明的对应方法名称一致;第二,起始方法与结束方法都必须为静态(static)方法。
下面附件1中给出了一个完整的J-link起始类的源代码,其中大部分代码来源于proe自带的示例程序,该段代码可以说就是一个完整的J-link程序了,其中包含起始方法startTest(),结束方法stopTest(),还有另外一个成员方法infoMessage()(该成员方法实现在proe消息窗口中输出信息,大家可以先不用理会该方法的实现方式,在稍后的帖子中会详细讨论J-link实现向消息窗口输出信息的方式),程序执行时会在proe消息窗口中显示一句提示信息:Hello J-link !
         大家先将附件1中的StartClass.java进行编译,将得到的StartClass.class文件置于附件2中的test文件夹中,为了达到练习目的,请大家自行修改test文件夹内的protk.dat文件,修改完成后直接保存,然后启动PROE,该版工作目录到test文件夹下,在proe辅助应用程序对话框中注册运行,看看proe消息窗口是否输出了“Hello J-link !呢?
作者: Pretty494    时间: 2009-2-9 21:49
标题: ...
为什么注册不了,我是野火2.0
作者: Pretty494    时间: 2009-2-9 21:51
标题: ....
jlink_java2 属性已经设置为ON了

另外, pfcasync.jar 是做什么用的。 它里面有些文件和 pfc.jar 为什么一样。
作者: 腾飞出品    时间: 2009-2-9 22:54
标题: 回复 3楼 Pretty494 的帖子
明确的讲pfcasync.jar是异步模式相关的类库,有些文件可能与pfc.jar相同也不为怪,而在同步模式下的二次开发只需要pfc.jar包就行了;
关于注册不了的问题楼上没有具体说明,如果按照我之前的帖子一步步配置好开发环境,应该是可以注册的!
作者: Pretty494    时间: 2009-2-11 23:15
楼主: 你好。

   我已经将你前面的贴都看完了。 首先感谢你的分享。 之前我一直用VC在做二次开发, 看了你的贴,

就有了用JAVA 的冲动。。。 但是我的环境一直没有配好。 已经连续搞了3个晚上了, 希望你能帮我看看是哪里搞错

了。

PROE 版本: 野火2.0

选项设置:     jlink_java2   ON

环境变量:     CLASSPATH  :E:\ProEngeer\proe2.0\proeWildfire 2.0\text\java\pfc.jar ;  C:\Program Files\Java\jre6\lib

使用范例:
                    E:\ProEngeer\proe2.0\proeWildfire 2.0\jlink\jlink_appls\install_test
                    E:\ProEngeer\proe2.0\proeWildfire 2.0\jlink\jlink_tutorial\solutions\solution_5

编译工具:  采用命令行  JAVAC   *.JAVA   成功编译出 *.class 文件。

注册文件: 使用默认注册文件, 未加任何修改。

测试结果: 注册失败。

自我分析: 能够编译出 *.class文件, 说明 classpath 变量没有问题。 于是怀疑是 JRE 问题。

                   按照你的说明,重装PROE。 效果一样。后来干脆手动在
                   E:\ProEngeer\proe2.0\proeWildfire 2.0\i486_nt\obj   中运行 j2re-1_4_2_03-windows-i586-p.exe ,
                   安装后,仍旧没有改变。

                   分别从SUN 下载 jre-1_5_0-windows-i586.exe, 和 jre-6u12-windows-i586-p.exe 后,还是一样。

目前状况就是这样,不知道还有什么地方没有注意到。 USER GUIDE 的 Setting up jlink  我看3遍了。百思不得其解。

不知道楼主有什么好的建议没有。 难道是我编译有问题吗?



希望楼主能直接提供一个 编译好的 CLASS  和一个 注册文件 供小弟测试。如果能注册成功,说明我的编译有问题。

如果在我这边不能注册成功,则说明的确是我的环境存在问题。 小弟将非常感谢。

(我用VC开发这个比较熟悉,楼主要是有这方面的需求,小弟可以提供帮助)
作者: Pretty494    时间: 2009-2-11 23:22
对了, 每次测试的时候我都是直接将工作目录设置到测试文件夹的。

比如在.....\jlink_appls\install_test  中,我先用JAVAC 将文件编译出 class.

然后将工作目录设置在此,然后注册。 反正是不管怎么搞, 就是一次都不成功。
作者: 腾飞出品    时间: 2009-2-11 23:56
J-link开发环境配置注意的地方:1.环境变量要设置正确,包括pfc.jar与jre的2个CLASSPATH2.首先要测试java开发环境,可以自己编写一个简单纯java程序测试3.若java开发环境测试成功,再进行J-link环境测试。一般情况下若J-link程序能够编译生成.class文件,则J-link环境也应该配置正确了4.以上步骤都无误的话,接下来请确认protk.dat文件中的java_app_class   即起始类名须与J-link程序的起始类名一致,若不一致,无法注册5.每一个J-link工程文件夹内都必须包含一个text文件夹,该文件夹包含一个与消息输出相关的文件,若没有text文件夹,则无法注册


请将附件中的exam.rar直接解压,得到exam文件夹,在将pfcinstalltest.rar直接解压得到pfcinstalltest.prt文件,将该part件放入exam文件夹内,再改proe工作目录至exam文件夹,注册运行,若还有问题请回复
作者: Pretty494    时间: 2009-2-12 21:02
谢谢楼主, 使用你提供的附件,我可以注册成功。 但注册后没有任何现象发生。
把目录中的 PART 文件删除后,仍旧能注册成功。

我用命令行 Javac  *.java 编译出的CLASS 文件数量与 文件名称与楼主的一样。为什么我的
挂不上去,而楼主的却可以挂上去? (TEXT文件内容一样。)

之前的小JAVA程序我一直都是用的 命令行 编译。运行良好。
作者: 腾飞出品    时间: 2009-2-12 21:42
原帖由 Pretty494 于 2009-2-12 21:02 发表
谢谢楼主, 使用你提供的附件,我可以注册成功。 但注册后没有任何现象发生。
把目录中的 PART 文件删除后,仍旧能注册成功。

我用命令行 Javac  *.java 编译出的CLASS 文件数量与 文件名称与楼主的一样。为什么 ...


     如果注册成功,请在辅助应用程序窗口中选择该程序,并点击Start按钮,看看proe的File菜单是否多出了一个-J-link-菜单项,如果有的话请点击该菜单项,点击之后会自动打开目录中的PART文件(注意,此时请不要再删除该PART文件),并且会跳出一个JAVA消息窗口,显示test successful !
    如果没有这个-J-link-菜单项的话,则表示楼上的J-link开发环境未配置正确,请仔细按照我之前的贴子来一步步的配置好开发环境!祝你成功配置好J-lik !
作者: Pretty494    时间: 2009-2-13 21:19
楼主:
     你好 , 感谢这几天以来你耐心的回答。  不过遗憾的是,我的 J_LINK 仍旧无法使用。
     使用你的附件,我已经能够将菜单挂上, 并且成功载入了模型。 这足以说明我的环境是没有什么问题的。

      但是,当我 使用自己编译出来的 CLASS 的时候,却怎么也注册不了。 编译使用的源文件是 你在第二个帖子里面的附件。  
      
      我分别使用了三种方法编译:
                       一: 使用命令行 javac  编译。    注册失败。
                       二: 使用软件 JCreater 编译。   注册失败。
                       三: 使用软件 eclisps 编译。    注册失败。

      有趣的是, 使用第一种方法编译出来的 pfcInstallTest.class  为 9 KB .
后两种编译出来的是 11 KB .  而你给我的附件中 该 class 为 10 KB。

      难道不同版本的 proe 必须对应于不同版本的 JDK ?。。。。。

为了验证这个想法的真实性, 希望楼主再发最后一次附件。 将 java 源文件 和 编译好的
class 文件 发上来。 (或者将7楼中的源文件发上来。)

如果最后的确是这个结果, 我就真的无语了。
作者: Pretty494    时间: 2009-2-13 22:18
楼主:
       你好, 不用再发附件了。 我已经找到问题在哪里了。

正如我所怀疑的,编译出来的 CLASS 与环境是分不开的。  我把本机的 JDK 和 JRE  卸载了。 然后手动从  E:\ProEngeer\proe2.0\proeWildfire 2.0\i486_nt\obj   中运行 j2re-1_4_2_03-windows-i586-p.exe   安装了 PROE 2.0 默认的 JRE .
  由于JDK 已经卸载, 因此,我采用了 eclisps 编译 。 这回编译出来的结果 与 楼主的附件一致。 注册运行,一切正常。 呵呵。

   之前编译出来的 CLASS 不能使用是因为在安装 JDK 时候,附带安装了 高版本的 JRE .

     高版本的 JDK 将 JAVA  编译成了高版本的 CLASS,这个编译后的CLASS在低版本的 JRE 中当然是不能使用了。

   多谢楼主这几天的帮忙,不然,还真不知道什么时候才能找出正真的原因。 这个问题在
USER GUIDE 讲得比较模糊。
作者: xiaonei    时间: 2009-2-17 22:23
我的编译成功但是不能运行 晕到
作者: laohushizi    时间: 2009-7-8 16:44
楼主 点击启动程序就自动关闭了 麻烦指点一下
作者: ainier    时间: 2010-11-19 21:47
我看完楼主的贴子,我在eclipse里面编译出了.class文件,也是无法挂到proe上,难道我也是高版本的 JDK ??我再试一次,彻底重新配置一次。
作者: dengxiadumian    时间: 2013-9-23 21:50
为什么我按照你们的配,还是注册失败,百思不得其解,望不吝赐教,谢谢!
作者: dengxiadumian    时间: 2013-9-23 21:51
为什么我按照你们的配,还是注册失败,百思不得其解,望不吝赐教,谢谢!
作者: 达芬奇    时间: 2013-10-17 14:10
这个好难啊!现在不是已经有做二次开发的公司了吗,北京的一个叫普世万优的公司就做好多软件了,都是应用在Proe上的,我现在就用着好几款它的软件,用着还挺不错的
作者: houyin8689    时间: 2014-3-25 21:00
谢谢分享




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3