|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,程序|控件|扫瞄器VisualJ#.NET小组
MicrosoftCorporation
择要:经由过程MicrosoftJ#扫瞄器控件,开辟职员能够将所编写的在Java假造机上运转的Java小程序迁徙到.NET框架。本文向开辟职员先容J#扫瞄器控件,并申明将Java小程序迁徙到.NET框架的步骤。本文还会商了其他一些主题,如J#扫瞄器控件的平安性和调试,和以后版本中不受撑持的功效。
下载HTML小程序到对象标志转换器(95KB)
本文假定开辟职员熟习.NET框架和VisualJ#.NET。要下载J#扫瞄器控件运转库,请参阅http://msdn.microsoft.com/vjsharp/downloads/browsercontrols/。
本页内容
简介
新增功效
将Java小程序编译为J#扫瞄器控件
将HTML页更新为利用J#扫瞄器控件
部署J#扫瞄器控件
在用户盘算机上运转J#扫瞄器控件
以后版本中不受撑持的功效
小结
简介
已利用VisualJ#.NET迁徙到.NET框架的Java小程序称为J#扫瞄器控件。J#扫瞄器控件旨在让客户可以将其现有的Java小程序迁徙到.NET框架。
经由迁徙失掉的J#扫瞄器控件与本来的Java小程序具有相似的运转时举动,并保存了Java言语语义。假如在盘算机上安装了J#扫瞄器控件运转库,用户乃至大概认识不到特定的Web站点已将其Java小程序晋级到了J#扫瞄器控件。
要将Java小程序迁徙到J#扫瞄器控件,您必需安装VisualJ#.NET1.1版可从头公布软件包和.NET框架SDK1.1版或VisualStudio.NET2003。一样,假如用户但愿运转由Web站点承载的J#扫瞄器控件,则必需在本人的盘算机上安装.NET框架1.1版可从头公布软件包和J#扫瞄器控件运转库。J#扫瞄器控件不克不及在Java假造机上运转。J#扫瞄器控件只能在MicrosoftInternetExplorer(5.1版和更高版本)中运转。
将Java小程序迁徙到J#扫瞄器控件的历程包含三个步骤:
1.
利用VisualJ#编译器将Java小程序编译为J#扫瞄器控件。
2.
将HTML页更新为利用J#扫瞄器控件而不是利用Java小程序。
3.
将J#扫瞄器控件和HTML页复制到Web服务器。
前往页首
新增功效
J#扫瞄器控件1.1b版中增加了以下功效:
脱机撑持
MicrosoftJ#扫瞄器控件1.1b版如今撑持在没有Web服务器的情形下,在InternetExplorer中加载控件。今朝撑持以下计划:
•从当地文件体系加载控件
•从收集共享地位加载控件
•从收集驱动器加载控件
在上述一切计划中,J#扫瞄器控件在默许情形下都将经由过程Intranet权限运转。
剧本撑持
MicrosoftJ#扫瞄器控件1.1b版撑持以下剧本计划。
•剧本挪用J#扫瞄器控件的办法并会见其属性
•从J#扫瞄器控件挪用剧本事务
•J#扫瞄器控件利用NetscapeJavaScriptAPI来会见由InternetExplorer对象模子公然的网页中的元素。
J#扫瞄器控件1.1b版还供应对NetscapeJavaScriptAPI功效的完全撑持。netscape.javascript小程序API软件包具有以下类:
•netscape.javascript.JSObject
•netscape.javascript.JSException
前往页首
将Java小程序编译为J#扫瞄器控件
能够经由过程利用VisualJ#编译器(vjc.exe)将Java小程序编译为托司库,从而将其迁徙到J#扫瞄器控件。能够从命令提醒符下也能够从VisualStudio.NET中将Java小程序源代码编译为J#扫瞄器控件。假如Java小程序是利用MicrosoftVisualJ++6.0开辟的,大概只须利用VisualStudio.NET将项目晋级到VisualJ#.NET。
将Java小程序编译为托司库相似于在VisualJ#中编译任何其他库。年夜多半情形下,在将Java小程序编译为托司库时,不必要对Java小程序源代码举行任何变动,这是由于J#扫瞄器控件运转库供应了对MicrosoftJava假造机中很多功效的撑持。这包含对JDK1.1.4级软件包和java.applet软件包中的功效的撑持。
包括J#扫瞄器控件的托司库与.NET框架中的其他托司库没有甚么分歧。当用户会见承载了J#扫瞄器控件的Web站点时,J#扫瞄器控件运转库将下载该托司库并在InternetExplorer中运转它。
利用AppletClass文件创立J#扫瞄器控件
假如只存在Java小程序的Java言语字节码(.class文件),则可使用VisualJ#二进制转换器工具(JbImp.exe)将Java小程序转换为托司库。
从命令提醒符下编译Java小程序
您可使用VisualJ#编译器(vjc.exe)从命令行编译Java小程序。比方:
C:AppletSources>vjc.exe/target:library/out:MyApplet.dll*.java
该命令会将Java小程序源文件(带有.java扩大名)编译为名为MyApplet.dll的新.NET框架DLL。
您还可使用VisualJ#二进制转换器工具:
C:AppletSources>jbimp.exe/target:library/out:MyApplet.dll*.class
假如您安装了VisualStudio.NET,则能够从VisualStudio.NET命令窗口中会见VisualJ#编译器(vjc.exe)和VisualJ#二进制转换器工具(JbImp.exe)。假如您未安装VisualStudio.NET,则必需确保这些工具位于您在命令提醒符下键进的路径中。
在迁徙利用资本的Java小程序时,您必需依照UpgradingVisualJ++6.0ApplicationsThatUseResources和HowTo:ResourcesinVisualJ#.NET中形貌的步骤操纵。
利用VisualStudio.NET迁徙Java小程序
假如Java小程序是一个VisualJ++6.0项目,则还可使用VisualStudio.NET来迁徙它。
利用VisualStudio.NET晋级VisualJ++6.0项目
1.
在VisualStudio.NET中翻开VisualJ++6.0项目。这将启动VisualJ#.NET项目晋级导游。
2.
在该晋级导游的一切步骤中都单击Next。晋级导游将把该VisualJ++项目转换成VisualJ#.NET类库项目。
3.
翻开晋级呈报,以便懂得导游是不是在晋级过程当中检测到成绩。
注呈报中将提到Appletprojectsarenotsupported。您能够疏忽该毛病。在天生项目之前,您必需办理晋级呈报中列出的一切其他成绩。
4.
天生项目。这会将Java小程序编译为托司库。
在VisualStudio中,您没法经由过程单击Debug然后单击Start大概经由过程按F5来在InternetExplorer中启动J#扫瞄器控件。您必需将控件复制到Web服务器的假造目次中,才干运转它。有关具体信息,请参阅部署J#扫瞄器控件和Howto:DebugJ#BrowserControls。
有关将VisualJ++6.0项目晋级到VisualJ#.NET的具体信息,请参阅UpgradingfromVisualJ++6.0。
与利用NetscapeLiveConnectAPI的小程序有关的其他步骤
除上述白皮书中先容的迁徙步骤之外,开辟职员在编译利用NetscapeLiveConnectAPI的小程序时,将必要援用一个附加的程序集。J#扫瞄器控件1.1b版中供应了对LiveConnectAPI功效的撑持。
注假如开辟职员迁徙使用NetscapeJscriptAPI的小程序,则必要在其开辟盘算机上安装J#扫瞄器控件1.1b版,然后才干包括对该程序集的援用。
要从命令行编译,请按以下体例包括该援用:
vjc/r:??%ProgramFiles%MicrosoftJSharpBrowserControlsv1.1vjsjbc.dll??
/t:lMyApplet.java
假如您利用的是VisualStudio.NET2003,则必要在援用列表中增加对该程序集的援用。有关具体信息,请参阅AddReferenceDialogBox。
假如您利用的是JbImp,请利用以下命令将Java小程序.class文件转换为J#扫瞄器控件程序集。
jbimp/r:??%ProgramFiles%MicrosoftJSharpBrowserControls
v1.1vjsjbc.dll??/t:lMyApplet.class
前往页首
将HTML页更新为利用J#扫瞄器控件
将Java小程序编译为J#扫瞄器控件今后,下一步是将HTML页更新为入手下手利用迁徙后的控件。HTML页中的<APPLET>标志或Java<OBJECT>标志必需转换为援用J#扫瞄器控件的<OBJECT>标志。
本白皮书包括一个称为“HTML小程序到对象标志转换器”(TagConvert.exe)的示例工具,它可以主动将HTML页晋级为利用J#扫瞄器控件。用于下载该示例工具的链接位于本白皮书的开首部分。请下载并运转TagConvertSetup.exe以便安装“HTML小程序到对象标志转换器”(TagConvert.exe)。
可按以下体例利用该工具:
TagConvert[options]<sourcefiles>
比方:
TagConvert.exeMyAppletPage.html
该工具的输出能够是任何文本文件,其扩大名能够是.html、.htm、.asp和.aspx。
该工具可将<APPLET>标志或Java小程序<OBJECT>标志交换为包括以下J#扫瞄器控件<OBJECT>标志的HTML代码:
<OBJECT
CLASSID="clsid:a399591c-0fd0-41f8-9d25-bd76f632415f"
WIDTH=pixels
HEIGHT=pixels
ID=browserControlName
ALIGN=alignment
HSPACE=pixels
VSPACE=pixels
VJSCODEBASE=codebaseURL
>
<PARAMNAME=parameter1VALUE=value>
<PARAMNAME=parameter2VALUE=value>
...
alternateHTML
</OBJECT>
个中:
CLASSID
下载并实行J#扫瞄器控件的ActiveX控件的CLASSID。必需在J#扫瞄器控件<OBJECT>标志中利用这一切实的CLASSID。
VJSCODEBASE
J#扫瞄器控件类的URL和包括该类的托司库。标记“#”用于将托司库文件名与J#扫瞄器控件类名分开开来。假如该文件名包括空格字符,则必要将VJSCODEBASE属性值放在引号内。该文件名还必需包含文件扩大名。比方:
VJSCODEBASE=
http://www.microsoft.com/MyApplet/MyAppletClass.dll#MyAppletClass
基础代码(Codebase)还能够是绝对URL。比方:假如页面位于http://www.microsoft.com/MyApplet/MyAppletPage.htm,则
VJSCODEBASE=
MyAppletClass.dll#MyAppletClass
援用位于http://www.microsoft.com/MyApplet/的MyAppletClass.dll中的扫瞄器控件MyAppletClass。
假如您选择手动更新HTML页,则能够经由过程将<APPLET>或Java小程序<OBJECT>标志交换为上述J#扫瞄器控件<OBJECT>标志来完成操纵。不外,倡议您利用示例工具,由于它可以天生附加的HTML代码,从而使您在扫瞄时取得更优美的体验。
转换历程
在转换HTML页时,该工具会删除本来的<APPLET>标志或Java小程序<OBJECT>标志,并将其交换为还包括后面形貌的J#扫瞄器控件<OBJECT>标志的HTML代码。
在转换标志之前,该工具会创立原文件的备份。文件的备份正本将带有.vjsbak扩大名。比方,index.htm将被备份为index.htm.vjsbak。备份文件创立于原文件的目次中。
该工具利用本来<APPLET>标志(或Java小程序<OBJECT>标志)的CODE和CODEBASE属性中的值来创立VJSCODEBASE属性的值。比方:
CODE="MyAppletClass"
CODEBASE=http://www.microsoft.com/MyApplet
被修正为:
VJSCODEBASE=
http://www.microsoft.com/MyApplet/MyAppletClass.dll#MyAppletClass
默许情形下,该工具假定J#扫瞄器控件类的称号(比方,MyAppletClass)与DLL(MyAppletClass.dll)的称号不异。假如J#扫瞄器控件类与DLL的称号分歧,您必需响应地修正VJSCODEBASE属性值。因而,在利用该工具时,倡议您将Java小程序编译为与小程序类具有不异称号的托司库。比方:
C:MyAppletClassSources>vjc/target:library/out:MyAppletClass.dll*.java
J#扫瞄器控件运转库在VJSCODEBASE属性中只撑持HTTP、FILE和HTTPS协定。指定绝对路径后,将利用加载html页时所用的协定来加载J#扫瞄器控件。J#扫瞄器控件不撑持从DOCBASE以外的地位来加载控件。VJSCODEBASE中的值必需与DOCBASE不异,大概必需是DOCBASE的子目次之一。DOCBASE所援用的地位就是从中加载HTML页的地位。
在转换过程当中,OBJECT的很多属性坚持稳定。以下部分中申明了TagConvert所转换的属性的具体信息。J#扫瞄器控件<OBJECT>标志中的很多参数与<APPLET>或Java小程序<OBJECT>标志的响应参数不异。
命令行选项
受撑持的命令行选项包含:
/recurse:<wildcard>
依据通配符标准,在以后目次及其一切子目次中搜刮要转换的文件。比方:
TagConvert/recurse*.htm*.html
晋级以后目次及其子目次中具有.htm和.html扩大名的一切文件。
/verbose
打印在转换过程当中产生变动的文件的称号。文件名包含文件的完整限制路径。该工具还可打印所剖析文件的总数和所转换文件的总数。比方:
TagConvert/verboseAppletSourcesPages*.htm>changedfiles.txt
晋级指定目次中具有.htm扩大名的一切文件,并将经由修正的文件的称号转储到changedfiles.txt文件中。
/nologo
作废显现版权信息。比方:
TagConvert/nologoAppletSourcesPages*.htm
晋级指定目次中具有.htm扩大名的一切文件,并作废显现版权信息。
<APPLET>标志与J#扫瞄器控件<OBJECT>标志之间的属性映照
下表显现了<APPLET>标志中的属性与J#扫瞄器控件<OBJECT>标志中的属性之间的映照。
<APPLET>标志语法(包含InternetExplorer扩大)J#扫瞄器控件<OBJECT>标志语法
CODEBASE
VJSCODEBASE
CODE
VJSCODEBASE
WIDTH
WIDTH
HEIGHT
HEIGHT
NAME
ID
ID
ID
ALIGN
ALIGN
VSPACE
VSPACE
HSPACE
HSPACE
ARCHIVE
在以后版本中已删除而且不受撑持
ALT
ALT
<PARAM>
<PARAM>
<PARAMNAME=FireScriptEventsVALUE=True>
在以后版本中保存稳定但不受撑持
<PARAMNAME=cabbaseVALUE=cabFileName>
<PARAMNAME=cabinetsVALUE=cabFileNames>
在以后版本中保存稳定但不受撑持
<PARAMNAME=useslibraryVALUE=DUFriendlyName>
<PARAMNAME=useslibrarycodebaseVALUE=DUFileName>
<PARAMNAME=useslibraryversionVALUE=DUVersionNumber>
在以后版本中保存稳定但不受撑持
<PARAMNAME=namespaceVALUE=applicationNamespace>
在以后版本中保存稳定但不受撑持
在以后版本中,<APPLET>标志中的以上司性不受撑持,而且在J#扫瞄器控件<OBJECT>标志中没有等效属性。
•archive、cabbase和cabinets属性。在以后版本中,不撑持将J#扫瞄器控件打包成.cab、.zip或.jar文件。J#扫瞄器控件必需作为自力的.dll文件部署到Web服务器上。
•useslibrary、useslibrarycodebase、useslibraryversion和namespace属性。J#扫瞄器控件运转库不撑持MSJVM的Java保证理器语义。
<APPLET>标志中的那些在<OBJECT>标志中具有间接等效属性的属性能够按原样复制。它们在J#扫瞄器控件<OBJECT>标志中和在本来的<APPLET>标志中具有不异的寄义。
假如<APPLET>或Java小程序<OBJECT>标志除具有ID属性之外,还具有NAME属性,则将删除NAME属性,并利用ID属性中的值。
前往页首
部署J#扫瞄器控件
部署J#扫瞄器控件就像将托司库和更新过的HTML页复制到Web服务器或用户盘算机上的响应目次中一样复杂。Web服务器不再是部署J#扫瞄器控件的需要前提。必需将托司库复制到HTML页地点的目次中大概某个子目次中。
利用IISWeb服务器时,必需将假造目次上的ExecutePermissions字段设置为Scriptsonly,即IIS中的假造目次的默许权限级别。
部署多DLL扫瞄器控件
能够将一个J#扫瞄器控件拆分为多个DLL文件。在这类情形下,必需在HTML页中援用包括次要J#扫瞄器控件类的DLL。J#扫瞄器控件运转库将在运转时依据必要下载其他DLL。
在部署多DLL控件时,必需将与统一J#扫瞄器控件相干的一切文件复制到统一目次中。这些文件必需作为自力文件举行复制,而且不克不及打包成.cab、.zip或.jar文件。
将多个J#扫瞄器控件打包到统一个库中
您还能够将多个J#扫瞄器控件打包到统一个托司库中。在这类情形下,每一个J#扫瞄器控件的<OBJECT>标志均必需指向统一个托司库,但指向分歧的类名。比方,假如假造目次AppletDir中的MyApplets.dll包括名为MyApplet1和MyApplet2的J#扫瞄器控件,则您能够按以下示例所示来援用这两个J#扫瞄器控件:
VJSCODEBASE="http://www.microsoft.com/AppletDir/MyApplets.dll#MyApplet1"
VJSCODEBASE="http://www.microsoft.com/AppletDir/MyApplets.dll#MyApplet2"
由于J#扫瞄器控件只能从HTML页地点的目次或其某个子目次中下载,以是假如HTML页的目次分歧,您大概必要将托司库复制到多个地位。
前往页首
在用户盘算机上运转J#扫瞄器控件
终极用户除在本人的盘算机上安装J#扫瞄器控件运转库之外,不必要懂得J#扫瞄器控件。
在用户盘算机上安装J#扫瞄器控件运转库撑持
用户必需在本人的盘算机上安装J#扫瞄器控件运转库后,才干在InternetExplorer中检察和利用J#扫瞄器控件。您和您的网站办理员必要为终极用户供应下载和安装J#扫瞄器控件的办法。J#扫瞄器控件运转库还撑持利用SMS或组战略举行安装。有关利用SMS或组战略部署J#扫瞄器控件的具体信息,请参阅http://www.microsoft.com/smserver/techinfo/deployment/20/default.asp或http://www.microsoft.com/windows2000/techinfo/reskit/dpg/default.asp。
J#扫瞄器控件的平安举动
默许情形下,J#扫瞄器控件运转库在运转Internet网页上承载的控件之前,会提醒终极用户。当用户扫瞄到含有J#扫瞄器控件的InternetWeb站点时,将显现以下对话框:
假如用户单击Yes,将下载并运转J#扫瞄器控件。单击No将克制J#扫瞄器控件运转。
假如选中AddthissitetothelistofsitesallowedtorunJ#BrowserControlsanddontaskmeagain复选框并单击Yes,则会将该Web站点增加到同意运转J#扫瞄器控件的网站列表中,而且当用户今后会见该Web站点上的网页时,将不会提醒用户。该复选框的默许值被设置为已选中。
J#扫瞄器控件运转库在从Intranet上的Web站点中运转时,不会提醒用户。
用户还可使用“ControlPanel”中“AdministrativeTools”下供应的“J#BrowserControlsSecurityOptions”对话框,来办理同意运转J#扫瞄器控件的网站列表。在WindowsXP中,您能够从“ControlPanel”中的PerformanceandMaintenance会见该对话框。在Windows98和WindowsMillenniumEdition中,您能够从“Start”菜单中的“AdministrativeTools”菜单会见该对话框。双击J#BrowserControlSecurity图标可翻开以下对话框:
选项包含:
DisableJ#BrowserControls
克制来自任何Web站点的J#扫瞄器控件在盘算机上运转。
OnlyfromWebsitesinthislist
只同意来自列表中Web站点的J#扫瞄器控件运转。
OnlyontheIntranetandfromWebsitesinthislist
只同意来自Intranet或来自列表中Web站点的J#扫瞄器控件在盘算机上运转。这是默许设置。
OnanyWebsite
同意来自任何Web站点的J#扫瞄器控件在盘算机上运转。倡议不要利用该选项,假如利用应非常当心。
在AddWebsite文本框中输出一个Web站点的地点,然后单击Add,就会将该Web站点增加到同意运转J#扫瞄器控件的网站列表中。一样,从WebsitesallowedtorunJ#BrowserControls列表当选择某个Web站点,然后单击Remove,就会将该网站从列表中删除。将某个Web站点增加到同意运转J#扫瞄器控件的网站列表中今后,用户在运转该Web站点上的J#扫瞄器控件之前将不会失掉提醒。
默许情形下,将选中PrompttoaddnewWebsitestothislistinthefuture复选框,这会使J#扫瞄器控件运转库在运转来自该列表内部的Web站点的J#扫瞄器控件之条件示用户。当该复选框被扫除后,将不会运转来自该列表内部的Web站点的J#扫瞄器控件,而且不会提醒用户。
前往页首
以后版本中不受撑持的功效
在以后版本的J#扫瞄器控件中,以下功效不受撑持:
•基于信托的平安
不撑持MSJVM所撑持的基于信托的平安语义。将Java小程序迁徙到J#扫瞄器控件今后,这些小程序将利用SecuritySemanticsforJ#BrowserControls中形貌的平安语义。
•Java保证理器
MSJVM中撑持的Java保证理器功效在J#扫瞄器控件中不受撑持。J#扫瞄器控件不撑持对象缓存(对象缓存可用来在当地安装类,然后利用权限署名经由过程一组受限定的权限来运转这些类)。因而,也不撑持安装和运转DistributionUnits。
•存档文件
存档文件不受撑持。一个J#扫瞄器控件能够拆分为多个托司库。但是,将多库控件部署到Web服务器时,这些文件必需作为自力文件举行复制,而且不克不及打包成.cab、.zip或.jar文件。
•Java把持台撑持
J#扫瞄器控件1.1b版不撑持InternetExplorer中的Java把持台。不外,为了从代码中利用把持台打印语句来调试J#扫瞄器控件,能够将InternetExplorer的输入重定向到某个文件。
%ProgramFiles%InternetExplorerIExplore.exe[htmladdress]>
[outputfilepath]2>[errorfilepath]
•对一切事务语法的撑持
该版本不撑持任何事务语法,只撑持以下语法。
<SCRIPTlanguage="JavaScript"for="MyAxClass1"
event="dataUpdated(atTime,msg)">
alert("Eventoccurred.EventName=dataUpdated,"+
"Time="+atTime+",Message="+msg);
</SCRIPT>
•没有计划器撑持
VisualStudio.NET中没有针对J#扫瞄器控件的计划器撑持。
前往页首
小结
J#扫瞄器控件为开辟职员供应了一种迁徙本人的Java小程序以便在.NET框架上运转的办法。经由迁徙失掉的J#扫瞄器控件与本来的Java小程序具有不异的运转时举动,并保存了Java言语语义。J#扫瞄器控件还具有对.NET框架的完全会见权限,包含会见针对XMLWeb服务的本机撑持的才能。它们还为J#开辟职员供应了一种在基于Web的使用程序中增加丰厚的客户端功效的办法。
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。 |
|