This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:在 DSS 脚本中将 Java 包导入 javascript 文件

Guru**** 1940910 points
Other Parts Discussed in Thread: CCSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/835876/ccs-importing-a-java-package-in-javascript-file-in-dss-scripts

Thread 中讨论的其他器件:CCStudio

工具/软件:Code Composer Studio

首先、我尝试添加一个由 Peak 提供的复杂 Java API 函数包、以便通过 USB 连接 CAN 总线驱动程序。  意识到我遇到了类路径问题、我遵循了线程中的示例  

如何将用户.jar 添加到 dss.BAT javascript *with * eclipsec.exe -需要将 CCS GUI eclipse 与 rhino 调试器以及用户提供的.jar 一起使用

下载小示例 com.ti.test.zip 并尝试成功执行该示例。 到目前为止,我甚至不能这样做。  我一直想将路径截断为我的工作目录,但我似乎无法获得 importPackage()函数 来添加软件包,也无法执行示例“Hi”函数。   我正在使用 dss.bat 调用此处所示的 Rhino/js 脚本。   

我是嵌入式 C/C++开发人员、不熟悉 Java。

MOMScript.js

importPackage( Packages.java.lang);
importPackage( Packages.java.io );
importPackage( Packages.java.math);
Print ("_________________________ ");

//MyClassPath ="C:\\_svn_repos\\_branches\NGJ_MC_01_04_JS\\DSP\\SEU\\JVScript;"+ System.getProperty ("java.class.path");

MyClassPath ="C:\\_svn_repos\\_branches\NGJ_MC_01_04_JS\\DSP\\SEU\\JVScript";

System.setProperty("java.class.path"、MyClassPath)
System.setProperty("java.library.path"、MyClassPath)

print("class.path="+System.getProperties("java.class.path");
print("library.path="+System.getProperties("java.library.path");

Print ("_________________________ ");
importPackage (Packages.com.ti.test)
//print (new Echo ().say ("hi"));

packs = java.lang.Package.getPackages()
var sstr="xxxy";
(每包 p)

sstr =字符串(packs[p]);
if ((sstr.indexOf("xyzzy.") !=-1)||
(sstr.indexOf("ti.") !=-1)||
0
)

打印(包[p]);

和结果

2019年8月30日13:45 749 xyzzy.jar
28个文件419、478字节
19 Dir (s) 126、350、622、720字节可用

C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript>DSS MOMScript.js
_________________________________
class.path=C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript
library.path=C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript
_________________________________
封装 com.ti.ccstudio.rhino
封装 com.ti.ccstudio.rhino.internal

C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript>

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luke、

    [quote user="Luke Reuter ">下载次要示例 com.ti.test.zip 并尝试成功执行该示例。 到目前为止,我甚至不能这样做。[/引述]

    您是否将文件复制到\ccs\eclipse\jre\lib\ext 并将扩展名重命名为 jar?

    这就是您应该做的所有事情。 完成后、可通过 DSS 运行以下脚本:

    importPackage (Packages.com.ti.test)
    打印(new Echo ().say ("hi"))
    这对我来说适用于 CCS 9.1.0
    Ki
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢! 我在之前的帖子中错过了这一建议。 我在最后得到了对 class.path 和 library.path 的修复

    我按照说明将我的 jar 文件添加到 CCS7目录(与示例程序相同)

    我已经从 CAN 总线 USB 适配器的制造商那里构建了一个 jar 文件、我认为我构建的是正确的。 我已经在 Java 中尝试过它、并完成了一些基本的 I/O 来证明它可以正常工作。  Java 主类如下所示:

    封装 peak.can.basic;

    公共类 PCANBasic{

       /**
        *初始化 PCAN 通道
        *
        *@param Channel PCAN 通道的句柄
        *@param Btr0Btr1通信速度(BTR0BTR1代码)
        *@param HwType non plug'n'play:硬件类型和操作模式
        *@param ioport non plug'n'play:并行端口的 I/O 地址
        *@param Interrupt non plug'n'play:并行端口的中断编号
        *@返回 TPCANStatus 错误代码
        *
       公共本机 TPCANStatus Initialize(.

    我编译了它并创建了包含以下内容的 jar 文件:


    C:\Users\chreuter \Documents\AAACAN>jar -TF peak.can.basic.jar
    Meta-INF/
    meta-INF/manifest.mf
    PEAK / CAN / BASIC / IRcvEventProcessor.class
    PEAK / CAN / BASIC / PCANBasic.class
    PEAK / CAN / BASIC / RcvEventDispatcher.class
    PEAK / CAN / BASIC / TPCANBaudrate.class
    PEAK / CAN / BASIC / TPCANBitrateFD.class
    PEAK / CAN / BASIC / TPCANBitrateFDValue.class
    PEAK / CAN / BASIC / TPCANDevice.class
    PEAK / CAN/BASIC / TPCANHandle$1.class
    PEAK / CAN / BASIC / TPCANHandle.class
    PEAK / CAN / BASIC / TPCANMessageType.class
    PEAK / CAN / BASIC / TPCANMode.class
    PEAK / CAN / BASIC / TPCANMsg.class
    PEAK / CAN / BASIC / TPCANMsgFD.class
    peak/CAN/basic/TPCANParameter 1.class
    PEAK / CAN / BASIC / TPCANParameter.class
    PEAK / CAN / BASIC / TPCANParameterValue.class
    PEAK / CAN / BASIC / TPCANStatus.class
    PEAK / CAN / BASIC / TPCANTimestamp.class
    PEAK / CAN / BASIC / TPCANTimestampFD.class
    PEAK / CAN / BASIC / TPCANType.class

    C:\Users\chreuter \Documents\AAACAN>

    在同一脚本中、我尝试了我添加的示例程序

    importPackage (Packages.peak.can.basic);
    var x =新 PCANBasic();

    但没有乐趣。

    PCANBasic 未定义。 我可能没有构造函数权限,但我不会得到“wron 构造函数”错误,而不是简单地“未定义”

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否可以将 jar 文件附加到此线程? 如果您不想公开分享、请与我开始私下交谈

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试连接、但"发生错误"。 Chrome 和 Explorer。   不确定是否为1)大小;2)二进制文件;或3)我的公司防火墙处于阻止状态。

    如何开始私人对话? 或者发送电子邮件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它也可以是文件扩展名。 尝试重命名它。

    [引用 USER="Luke Reuter ]如何开始私人对话? [/报价]

    请参阅中的最后一个常见问题解答:

    https://e2e.ti.com/support/tools/ccs/f/81/t/3131

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    私人消息似乎起作用。 但您现在可能知道...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Luke、我明白了。 我将通过 PM 继续讨论。

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luke、

    即使将 java.library.path 设置到 dll/lib 的目录、您提供给 Ki 的 jar 文件也不能用于我。

    我最终使用 Eclipse 创建了一个新的 Java 项目,并将您提供给他的 PCAN Java 源代码复制到新项目中,然后使用 Eclipse 重新导出 jar 文件。 将 jar 文件放入 CCS/eclipse/jre/lib/ext 文件夹并设置-Djava.library.path=后 ccstudio.in 中 我能够导入 peak.can.basic 软件包并在脚本控制台中调用新的 PCANBasic()。

    请告诉我您是否希望我将 jar 文件附加到此线程。 我还可以通过 PM 将其发送给您。

    此致、
    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、Patrik、

    是的、您可以附加 jar 文件吗? 该线程应该正常、因为源代码由供应商发布。  请问您是如何在 Eclipse 中创建 Java 项目的? 我不使用 Eclipse、至少不使用 GUI 中的 Eclipse。  我正在从命令行编写测试脚本、以对我们的嵌入式代码进行软件验证、因此我不是一个强大的 Eclipse 用户。  我确实需要为测试报告记录接口的构建方式。

    感谢您和 Ki 让我离开了场地!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Luke、

    这是 e2e.ti.com/.../peak.can.basic.jar 文件

    我使用标准的新 Java 项目创建了空项目、并添加了 CAN 库中的所有.java 文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我添加了

    C:\ti\ccsv7\eclipse

    进入我的 Windows 系统路径并开始 Eclipse、但我在新项目向导中看不到 Java。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们随 CCS 提供的 eclipse 版本不包括 Java 开发、如果您想使用 Java、则需要从 eclipse.org 下载该版本。

    以下是直接链接:

    https://www.eclipse.org/downloads/packages/release/2019-06/r/eclipse-ide-java-developers

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将 peak.can.basic.jar 文件放入 C:\ti\ccsv7\eclipse\jre\lib\ext 中

    并运行脚本


    C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript>DSS PcanScript.js
    你(们)好
    JS:"PcanScript.js"、第11行:未捕获的 JavaScript 运行时异常:ReferenceError:"PCANBasic"未定义。

    C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript>

    其中包含 JavaScipt:

    importPackage( Packages.java.lang);
    importPackage( Packages.java.io );
    importPackage( Packages.java.math);


    importPackage (Packages.com.ti.test)
    print(new Echo().say ("hi");

    importPackage (Packages.peak.can.basic);
    var x =新 PCANBasic();

    Ki 向我发送了样本包 com.ti.test.jar、我还将其包含在 eclipse 目录中。  我是否需要像脚本控制台那样,解释更新 java.library.path?

    我们不对这些脚本使用控制台。  我们正在编写一组脚本、这些脚本使用命令行脚本来执行我们的代码、以便对我们的软件进行回归测试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,您需要告诉 Java 在哪里加载 DLL。 您需要执行两个重要操作、将.jar 文件放入用于执行 CCS 脚本的 JRE 中、即 eclipse/jre/lib/ext 文件夹。 您还需要使用-Djava.library.path=将 java.library.path 属性传递给 vmarg 参数。 对于 CCS、您可以将其包含在 ccstudio.in 中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在.lib/ext 文件夹中有.jar 文件。

    我在包含在 java.library.path 中的文件夹中有 DLL

    不 引用错误:"PCANBasic"未定义。

    指示不引用 pcan 封装的指示器?  我认为直到构造函数运行时才会搜索 DLL。

    很明显、我正在学习 Java/JavaScript。  我是一名嵌入式 C/C++编程器、其新任务是从命令行运行脚本以验证我们的代码。

    当我们的脚本运行时、CCS 甚至不活动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否在命令提示符下使用 DSS 运行脚本? 即 DSS mytest.js?

    如果是、请添加 -vmargs -Djava.library.path= 在\ccs\ccs_base\scripting\bin\dss.bat 文件中调用 eclipsec.exe 的位置。

    在 dss.bat 文件中查找 launch_ide_script 字符串。

    例如:
    !DEBUGSERVER!\..\eclipse\eclipsec.exe -nosplash -application com.ti.ccstudio.apps.runScript -product com.ti.ccstudio.branding.product -dss.debug -dss.rhinoArgs -data @user.home/workspace "%ArgsAfterFirst%"-vmargs -Djava.library.path=

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我添加了、然后启用批命令回显。  看起来是相同的结果。

    最后,我附加了 java.library 路径之前的内容。 我真的截断了它。  

    C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript>!DEBUGSERVER!\..\..\eclipse\eclipsec.exe com.ti.ccstudio.apps.runScript com.ti.ccstudio.branding.product -dev "C:\ti\ccsv7\ccs_base\DebugServer\packages/ti\dss\java\peak.can.basic.PCANBasic.jar"-dsp -crashe\dss.crash\r -ccs.crash\r -library\ds.jlips.com -dsp -dsp -crash\jlips.jus.c -cr -mcr -mcr -mcr  
    library.path=C:\ti\ccsv7\eclipse
    你(们)好
    JS:"PcanScript.js"、第12行:未捕获 JavaScript 运行时异常:ReferenceError:"PCANBasic"未定义。

    C:\_svn_repos\_branches\NGJ_MC_01_04_JS\DSP\SEU\JVScript>转到 末尾

    library.path=C:\ti\ccsv7\eclipse;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:/ti/ccsv7/ccs_base/scripting/bin/../../DebugServer/../../eclipse/jre/bin/client;C:/ti/ccsv7/ccs_base/scripting/bin/../../DebugServer/../../eclipse/jre/bin;C:/ti/ccsv7/ccs_base/scripting/bin/../../DebugServer/../../eclipse/jre/lib/i386;C:\ActiveTcl\bin;C:\Program Files\Java\JDK11.0.2\bin;C:\Program Files\Windows\System32\Windows Performance Files\C:\Windows \System32\Windows \Windows \r Program\Windows \Windows \Windows \Windows \Windows \Windows \Windows \r \r \r \r \r \r \r \r \r \C:\Windows \Windows \r \r \r \r \r \r \r \r \C \r \r \r \r \r \r \r \r \r \r \C \r \r \r \r \r \r \r \r \r \r \C \r \r \r \r \r \r \r \r \r \r \r \r \C \r \r \r \r \r \r \r \r \r \r \r \r \r \r \r \r \

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我刚刚意识到您正在使用 CCSv7.x、我正在使用 CCSv9.x 来编译 jar 文件。 您是否能够使用 CCSv9运行 scirpt?

    CCSv7.x 使用32位 JRE、CCSv9.x 使用64位 JRE。 因此、我认为它在导入软件包时会导致类加载错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    遗憾的是、我们正在使用 CCSv7启动的程序的末尾、我们不敢在游戏的后期切换。  我是否可以像您一样在 Eclipse 中使用32位 JRE 重建 PCANbasic 软件包,并尝试导入该软件包?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在我看了一下,我看到我安装了64位 JDK:

    jdk-12.0.2_windows-x64_bin.exe

    是我构建 Java 开发环境的基础。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经用32位 Java 编译了 jar,但是您提供的 DLL 是64位 DLL。 因此、您必须获得32位版本的 dll 或升级到 CCS9.x

    我在这里附加了32位 jar 文件,以防您使用32位版本的 dll。  

    e2e.ti.com/.../6862.peak.can.basic.jar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢! 我替换了随附的 jar 文件。  PEAK 提供了32位库及其发布版本。  JavaScript 现在可以识别该软件包,并让我创建 PCANBasic()对象。  

x 出现错误。请重试或与管理员联系。