【问题标题】:T24 routine - compilation error - No component defined. $PACKAGE is mandatory?T24 例程 - 编译错误 - 未定义组件。 $PACKAGE 是强制性的吗?
【发布时间】:2019-12-30 13:56:20
【问题描述】:

下面是示例代码

SUBROUTINE HELLO.WORLD
*-----------------------------------------------------------------------------
*
*-----------------------------------------------------------------------------
* Modification History :
*-----------------------------------------------------------------------------
*-----------------------------------------------------------------------------

CRT "HELLO WORLD"

END

编译错误;

01/01/2019 16:26:03 Compiling HELLO.WORLD...                    ERROR
     Error : (line 12) HELLO.WORLD.b, No component defined. $PACKAGE is mandatory !
Compilation completed for 1 file(s). 1 error
01/01/2019 16:26:03 Compiling HELLO.WORLD...                    ERROR
     Error : (line 12) HELLO.WORLD.b, No component defined. $PACKAGE is mandatory !
Compilation completed for 1 file(s). 1 error

我已设置(在设计工作室中切换 tafj 项目性质选项期间);

  • TAFJ_HOME 正确。
  • “已知库”部分下的 T24lib 目录。
  • Java 文件夹:....\ProjectName-models\java.
  • 类文件夹:....\ProjectName-models\classes。

谢谢

【问题讨论】:

    标签: eclipse jbase


    【解决方案1】:

    要关闭对 tCompile 的检查,请在 tafj.properties 中设置这些属性:

    temn.tafj.compiler.internal.development=false
    temn.tafj.compiler.component.strict.mode=false
    

    但是,要遵循“最佳实践方式”,您应该有 $PACKAGE 语句,然后您的 JBC 代码将被编译成适当的 Java 包并放入 JAR 文件中。请注意,在此之前,您应该在 T24 Design Studio 中执行“New-->T24Component 文件夹结构”。这将创建 XX.componentname.component 文件,您可以在其中定义子例程。这个“XX.Local.component”必须先编译:

    component XX.Local
    # Component Isolation Definition
    metamodelVersion 1.6
    # -------------------------------------------------
    
    public method helloWorld ()
    {
        jBC: HELLO.WORLD
    }
    

    然后您可以像这样在子例程中引用 $PACKAGE:

    $PACKAGE XX.Local
    SUBROUTINE HELLO.WORLD
        CRT 'Hello, World!'
    RETURN
    END
    

    也可以在没有 Design Studio 的情况下手动创建组件。除非您有充分的理由,否则您不应使用 Dunce Cap(参见:https://en.wikipedia.org/wiki/Dunce)。

    【讨论】:

      【解决方案2】:

      右键单击项目源文件夹,然后单击“戴上/脱下 Dunce 帽”。重新编译。

      【讨论】:

      • 我尝试使用此功能。虽然我在右键菜单中找不到该选项。您使用的设计工作室版本是什么? (我正在尝试使用 R19)
      • 我正在使用 R18,我在右键菜单中有选项。似乎在 R19(TAFJ eclipse 文档)中删除了 dunce cap 功能。尝试使用组件功能。
      【解决方案3】:

      这是一个子程序,需要一个RETURN语句

      【讨论】:

      • 错误答案,T24 子程序将编译没有返回语句。
      【解决方案4】:

      对于 R19,右键单击项目导航到属性->TAFJ->编译器->取消选中维护验证代码。

      【讨论】:

        猜你喜欢
        • 2014-09-07
        • 2017-06-23
        • 2019-06-11
        • 2019-02-11
        • 2019-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多