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