动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Java操作Excel电子表格.
.在组件(components)之间共享Tick.
.技术摘要:如何编写安全的Java代.
.对等计算实践:基于 IP 多播的发.
.如何使用动态代理实现AOP功能.
.企业应用Web服务安全:问题介绍(.
.使用JDOM操作XML系列文章四 使用.
.Net Install SUNOS.
.使用state pattern替代if else.
.第二讲 Java语言基础知识.
.Java技巧101applet间通信的替代方.
.新手入门:JAVA实现数据库基本操.
.增强的Windows窗体为.Net程序丰富.
.解决Java程序在MOTO E680i中声音.
.Java的final变量需要注意地方.
.jboss配置 mysql数据库连接.
.jdk-1_5_0_04-nb-4_1-win简体中文.
.最简单的java分页算法.
.关于Apache Axis2的Web service消.
.JAVA入门教程:第一章.

Java编程交互管理工具:SecureJSH新特性

发表日期:2008-4-14 |


JavaEye上活跃的开发者Complystill(歆渊)最近发布了自己的开源SecureJSH项目,提供了一个通过SSH交互进行Java应用开发或者管理的工具。

在项目的介绍中可以得知,SecureJSH与Ptyhon里面的ipython或者Ruby里面的irb非常相似。它们都允许交互式运行语言的代码,以方便跟踪或者调试应用。但是,Java与Ruby、Python不同,后者是动态脚本语言,它们天生具有解释执行的特点(注意:当然Python支持预编译,Ruby也将在YARV中开始支持,这里指它们的解释执行状态)。我们常见的Python和Ruby发行版本基本上都包括自己的解释器(这也是它们的核心组件),但是Java是一种需要中间编译过程的语言,默认情况下它无法直接解释运行,也没有相应的解释器。

那么SecureJSH是如何实现的呢?读者首先会想到JSR-223,这个API可以自己扩展脚本语言支持,比如rhino是 Javascript解释引擎。但是使用它难以实现交互操作,因为它必须输入一个相对完整的脚本才可以运行,这样会丧失一部分交互性。SecureJSH 实际上是使用了JDK 6.0的新特性Java Compiler API(JSR-199),它提供了一组API来让程序可以动态地访问Java编译器的接口,这样就可以使用Java编译器动态检查代码语法或者动态根据 Java源码生成可以执行的字节码。这种方式与ASM的编程直接生成字节码不同,它能直接将Java源码转换为字节码,XRuby的主力开发者郑晔(网名 dreamhead)在他的Blog中这样对比了两种方案:

之前,刚刚在Blog中提到ASM,里面的代码生成工作是通过直接写 字节码完成的。现在有了Compiler API,可以考虑生成代码以Java源码的形式完成,然后,通过调用Compiler API对源码进行动态编译,这样,可以达到同直接写字节码类似的作用。使用Compiler API,肯定不如直接生成字节码来得高效,但对于不了解JVM指令的人来说这也许是一种解决方案。

可见JSR-199不是最高效的字节码生成方案,但是更方便使用。Java Compiler API不是为了取代ASM这样的方案的,它的本意是以编程的方式实现实时编译及信息反馈。Java目前的主要架构师之一Peter von der Ahé曾经在他的Blog对谁需要使用Java Compiler API这个问题做了如下解释:

99%的Java开发者都不需要了解Java Compiler API。只有少数的开发者会直接应用这个API。但是IDE、Java EE应用程序服务器、Maven或者Ant还有测试框架的开发者却不一样,他们有一个共同点,就死需要调用编译器将Java源码转换为类文件(他们是这个 API的潜在用户)。

可见JSR-199的产生主要是面向热部署或者增量编译这样的场合,但是SecureJSH的产生扩展了Java Compiler API的应用场景,同时也增强了Java和JVM的交互性。Complystill这样介绍了SecureJSH的应用场景和需求:

SecureJSH允许Java编写的服务器端应用程序为管理员、客户、开发者和客户端服务提供一个安全shell,这里可以交互性地让Java语言逐句运行。SecureJSH需要JDK 6.0或者JRE 6.0加JAVAC(在classpath中)来运行。

SecureJSH的官方首页这样描述了它的主要特性:

安全:SecureJSH在服务器端实现了RFC-4251,SSH 2.0协议,支持公钥认证,这种方式方便安全(不需要每次输入密码)。

交互式执行:传 统的方式下,在运行Java源代码之前你必须将它们编译为字节码。但是使用SecureJSH,编译的过程是透明完成的,所以你只需要随意输入一些 Java表达式(就可以运行)。这意味着你可以使用你书写应用程序时完全相同的语法,与最新的Java语言规范同步。你可以在你的Java项目源码和 SecureJSH终端里面拷贝&粘贴任何代码,都没有问题。

智能命令识别,UNIX Shell风格:不 像JSR-223(Java Scripting Engin,Java脚本引擎)对Java语言的脚本的支持,在(Java脚本引擎)里面你必须将Java类的全部代码输入后才可以执行, secureJSH更加智能和人性化,如果你输入了不完整的Java表达式,它会自动提示你进行多行的输入,然后将这些表达式包装到一个预先定义的类结构 中来执行。它是一个真正的Shell。

没有相互干扰,最小化资源消耗:SecureJSH没有需要储存在JVM范围的静态资源,每一个实例只消耗很少量的资源(基于NIO实现,所有的SSH通讯都由一个线程处理)。你可以按照你的想法在一个JVM里面运行任意多个shell服务,包括Java应用程序服务器的JVM。

作为一个开源项目,SecureJSH使用了ganymed的纯Java实现的SSH 2.0库,并使用Java NIO编写了网络服务,代码质量很高。据Comply Still介绍,SecureJSH最初是为内存数据库TOB设计的,为这个面向对象数据库提供交互访问的接口,但是后来作者发现它可以被应用在很多场合,所以单独开源发布。作为Java开发者,您可以从这里下载源码从中学习SSH 2.0、NIO网络服务、Java Compiler API的使用方法,相信一定会有所收获。

上一篇:程序员杂谈:Ajax优于JSF的几个原因讨论 人气:489
下一篇:关于如何用Java动态代理实现AOP的技术说明 人气:478
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-6 Menalto Gallery v2.3 Rc2 多国语
2008-10-6 花香盈路(Hxcms) v9.0
2008-10-6 华军软件下载系统 v1.5
2008-10-6 e107 v0.7.13
2008-10-6 (开源PHP框架) CodeIgniter v1.6
2008-10-6 PHP在线考试系统PPExam v1.2.6 b
2008-10-6 SiteDynamic企业网站管理系统 v1
2008-10-6 WebPlayer9 P2P视频点播电影整站
2008-10-6 BCMS v1.1 测试版
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成