如何告诉PowerBuilder在启动时将选项传递给JVM?

如何告诉PowerBuilder在启动时将选项传递给JVM?,jvm,powerbuilder,Jvm,Powerbuilder,我想做什么? 我想在PowerBuilder中创建和使用java对象,并对其调用方法。这应该以尽可能少的开销实现。 我不想使用java Web服务 所以我有一个工作示例,在其中我可以创建一个java对象,调用这个对象上的一个方法,并从被调用的方法输出结果。 一切正常。我正在使用Java1.8.031 但是现在我想将我的JavaIDE(IntelliJ)连接到运行中的JVM(由PowerBuilder启动)以调试PowerBuilder调用的java代码 现在是我的问题 如何告诉PowerBuil

我想做什么?

我想在PowerBuilder中创建和使用java对象,并对其调用方法。这应该以尽可能少的开销实现。 我不想使用java Web服务

所以我有一个工作示例,在其中我可以创建一个java对象,调用这个对象上的一个方法,并从被调用的方法输出结果。 一切正常。我正在使用Java1.8.031

但是现在我想将我的JavaIDE(IntelliJ)连接到运行中的JVM(由PowerBuilder启动)以调试PowerBuilder调用的java代码

现在是我的问题

如何告诉PowerBuilder在启动JVM时添加特殊选项? 特别是,我想以某种方式添加以下选项:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
JVM的创建如下所示:

LONG ll_result
inv_java = CREATE JavaVM

ll_result = inv_java.CreateJavaVM("C:\Development\tms java\pbJavaTest", FALSE)
CHOOSE CASE ll_result
    CASE 1
    CASE 0
    CASE -1
        MessageBox ( "", "jvm.dll was not found in the classpath.")
    CASE -2
        MessageBox ( "", "pbejbclient90.jar file was not found." )
    CASE ELSE
        MessageBox ( "", "Unknown result (" + String (ll_result ) +")"  )
END CHOOSE
在PowerBuilder帮助中,我发现了一些关于重写静态注册表类路径的内容。有一篇关于自定义属性的文章,听起来像是我在寻找的。 但是没有关于如何添加JVM选项来覆盖默认行为的示例

有人知道如何告诉PowerBuilder使用我的选项吗? 或者有没有人能给我一些建议,让我朝着正确的方向走

更新1

我找到了一个解决我最初问题的老帖子。 如果其他人想知道它是如何工作的,请查看以下帖子:

您好,您需要设置一些windows注册表项

在HKEY\U LOCAL\U MACHINE\SOFTWARE\Sybase\Powerbuilder\9.0\Java下,有 有两个文件夹:PBIDEConfig和PBRTConfig。第一个是在 您可以从IDE中运行应用程序,并使用IDE 运行编译后的应用程序时。这两个文件夹可以有 其中包含PBJVMconfig和PBJVMprops文件夹

PBJVMconfig用于JVM配置选项,如-Xms。你必须 指定从“0”开始的增量键值1和一个特殊值 键“Count”告诉Powerbuilder有多少选项可枚举

PBJVMprops适用于所有-D选项。您不需要为其指定-D PBJVMProps,只是属性的名称及其值,以及尽可能多的属性 财产如你所愿

让我举几个例子:

Windows注册表编辑器5.00版 [HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\PowerBuilder\9.0\Java\PBIDEConfig\PBJVMprops] “java.security.auth.login.config”=“auth.conf” “user.language”=“en”

[HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\PowerBuilder\9.0\Java\PBRTConfig\PBJVMconfig] “0”=“-客户端” “1”=“-Xms128m” “2”=“-Xmx512m” “计数”=“3”

[HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\PowerBuilder\9.0\Java\PBRTConfig\PBJVMprops] “java.security.auth.login.config”=“auth.conf” “user.language”=“en”

问候,, 戈汗·德米尔

但现在还有另一个问题。。。 PB无法为我的示例类创建EJB代理,java 1.8.031非常简单。它们是使用默认版本1.6.0_24创建的

public class Simple
{
  public Simple()
  {
  }

  public static String getValue()
  {
    return "blubber";
  }

  public int getInt32Value()
  {
    return 123456;
  }

  public double getDoubleVaue()
  {
    return 123.123;
  }

  public static void main(String[] args)
  {
    System.out.println(Simple.getValue());
  }
} 
错误如下所示:D

 ---------- Deploy: Deploy of project p_genapp_ejbclientproxy   (15:35:18)
Retrieving PowerBuilder Proxies from EJB...
    Generation Errors:  Error: class not found: ( 
    Deployment Error:   No files returned for package/component 'Simple'.       Error code: Unknown.   Proxy was not created.
Done.
 ---------- Finished Deploy of project p_genapp_ejbclientproxy   (15:35:19)
因此,整个方法不是一个选项,因为我们不希望来回更改PB中的JAVA设置,只是为了在将来为更改的JAVA对象生成新的EJB代理


因此,测试的一个选项是为JAVA类创建COM包装器,以便在PB中使用它们…

查看以下信息,这可能是一个解决方案:Thx供您回复。但将全局选项设置为所有JVM并不是我想要的方式。