首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Oracle窗体6i调用Java对象/函数?

如何从Oracle窗体6i调用Java对象/函数?
EN

Stack Overflow用户
提问于 2011-05-04 23:03:41
回答 3查看 15.4K关注 0票数 2

我正在处理一个遗留项目,该项目使用OracleForms6i(是的,我知道它是旧的)从PLL库调用C++函数。

现在我们需要使用Java而不是C++,因此我们需要从Oracle调用Java (对象/类/方法)。

我知道这是一个很有挑战性的课题,但如果有人能提供一个简单的例子来做以下工作,我会很高兴的:

  • 从Java类调用方法,传递一个int变量(在PL/SQL中)
  • 在执行函数的画布中打印返回的值。

一个基本的例子,也许哈罗世界将是理想的。

我知道一些PL/SQL,但我不是Oracle窗体开发人员;请原谅我。

如果这是不可能的,你能告诉我一些其他的选择吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-05 20:05:03

嗯,在通过互联网进行了大量查找之后,我发现了一个非常好的资源(不过是西班牙语):Elias关于Oracle窗体和Java的博客

我用:

  • Oracle窗体6i
  • JDK 1.6

在此基础上,我成功地创建了hello world示例:

配置路径环境变量:

  • C:\PATH_TO_JAVA\Java\jdk1.6.0\bin;
  • C:\PATH_TO_JAVA\Java\jdk1.6.0\jre\bin;
  • C:\PATH_TO_JAVA\Java\jdk1.6.0\jre\bin\client;

Ex: PATH_TO_JAVA = C:\Program

添加到CLASSPATH

  • FORMS_HOME\TOOLS\common60\JAVA\IMPORTER.JAR (在我的例子中,FORMS_HOME是C:\orant)
  • PATH_TO_YOUR_JAR\NAME_OF_JAR.jar

创建Java程序

  1. 用IDE创建一个简单的java程序,下面是我的: 公共类HiWorld{私有字符串hi=“HiWorld!”;公共字符串getHi(){返回this.hi;}公共字符串getMultiply(int a,int b){返回“+a*b;}公共静态空主( String args[]){ HiWorld hm =新HiWorld();System.out.println(hm.getHi());System.out.println(hm.getMultiply(5,10));}}
  2. 将其导出到Jar文件(Path必须是您在CLASSPATH环境变量中输入的路径)。

将类导入窗体

在Oracle窗体中创建一个新项目,并创建一个画布,在画布中使用文本和按钮。按钮的名称: TEXT_HI_WORLD。

单击菜单: Program > Import类

如果一切顺利,那么就会有一个新窗口显示这个类所在的包,然后将它扩展到HiWorld类。进口它。

在程序单元中,现在将有两个文件:

  • HIWORLD (规格)
  • HIWORLD (身体)

这是自动生成并需要使用类的文件。

然后回到画布上,右键单击Button并选择Thrigger当按下按钮时,它的编程将是:

代码语言:javascript
复制
DECLARE
    v_wb      ORA_JAVA.JOBJECT;
    v_hi      VARCHAR2(20);
BEGIN
    v_wb := hiworld.new();
    v_hi:= hiworld.getHi(v_wb);
    :TEXT_HI_WORLD := v_hi
END;

现在执行程序并单击按钮!:)

希望这能帮助不太了解表单的Java程序员与遗留系统集成!:D

票数 7
EN

Stack Overflow用户

发布于 2017-07-11 21:33:22

我以前已经这样做过,使用一个简单的类应该可以工作,但是当您尝试开发更复杂的东西时,我建议从VBean类扩展,您可以在oracle的窗体安装文件夹(frmall.jar)中找到这个库。

票数 0
EN

Stack Overflow用户

发布于 2013-08-20 16:27:06

代码语言:javascript
复制
// el programa corregido.

public class HolaMundo {

private String hi= "Hey World!!!";

  public String GetHi(){
    return this.hi;
  }

public static void main(String args[]){

    HolaMundo  hm = new HolaMundo();
    System.out.println(hm.GetHi());

  }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5890868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档