jboss编译jsp或者servlet是否需要运行jdk的javac?我机器上只有jre启动jboss没问题,奇怪的是含有java程序的jsp,可以正常编译,在work目录下生成XX_jsp.java和XX_jsp.class??????????

jinlongjolin 2007-10-12 01:05:26
加精
jboss编译jsp或者servlet是否需要运行jdk的javac?我机器上只有jre启动jboss没问题,奇怪的是含有java程序的jsp,可以正常编译,在work目录下生成XX_jsp.java和XX_jsp.class??????????
...全文
2157 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenciitc 2008-05-09
  • 打赏
  • 举报
回复
高薪招聘高校计算机专业兼职教师
北京思源培训中心(http://www.ciitc.com)专业做软件开发技术的培训;由于课程培训需要,长年高薪诚聘兼职讲师,欢迎计算机及相关专业的高校老师、研究生、博士生应聘
基本要求如下:
l 本科以上学历,计算机或相关专业毕业。
2 具有实际相关工作经验,从事过软件开发或系统管理工作。
3 语言表达清楚、流畅、逻辑思维清晰,英语听说良好。
4 诲人不倦,有高度的责任感、敬业精神和团队意识。
5 注重仪表,具有随机应变的能力。
6 具有一定的教学经验,从事过教学/培训业务者优先考虑。

精通应聘职位的某一部分课程内容,如下述编程语言或系统的一种或几种:
1. 编程语言:C++, VC++,VB.NET,C#, PowerBuilder, Delphi, Java,
Matlab , C++Builder
2. 数据库系统:SQL Server2000, SQL Server2005, Oracle,DB2,MySql
3. 网站编程:Marcomedia, HTML, Altova XML Suite,ASP, JSP, J2EE, J2SE,
PHP,ASP.NET,VB.NET, ColdFusion,ajax
4. 操作系统:Unix, Linux,Linux环境下嵌入式开发技术,Sun Solaris,IBM AIX
5. 办公软件:OFFICE(EXCEL、WORD、POWERPOINT)
6. 多媒体制作:Authorware7.0 , Director MX 2004
7. 图形动画类:Photoshop, Illustrator, CorelDRAW, FreeHand,
Flash ActionScript高级编程,3DMAX,AutoCAD2007 ,Maya
具有下述任何一种或几种国际IT认证证书者优先考虑:
1. 微软认证证书MCP / MCSA / MCSE / MCDBA / MCSD
2. SUN Java认证证书
3. Oracle认证证书
4. Macromedia认证证书
5. Linux认证证书
6. CIW (Certified Internet Webmaster) Associate/Professional/Master认证证书

有意者请把简历发到如下地址:abc@ciitc.com QQ:174629429 MSN:bjcosun@hotmail.com
http://www.ciitc.com
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
支持搂主,收藏
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
有问题请先GOOGLE,BAIDU
xiarunsheng 2008-03-30
  • 打赏
  • 举报
回复
有所收获,thanks
kgn28 2008-03-21
  • 打赏
  • 举报
回复
很显然呀,jsp是动态编译的,就是在web调
用是编译成servlet的,所以肯定是要编译
的,就是说要javac。
galaxyshen 2008-03-19
  • 打赏
  • 举报
回复
学习
fys249931556 2008-03-14
  • 打赏
  • 举报
回复
tomcat可以离开JDK。。但是离不开JRE
javaokay 2007-10-31
  • 打赏
  • 举报
回复
长知识了,难怪前两天看同学机器上没jdk就个jre,但是在Eclipse里可以运行java文件,而Tomcat要指定jdk目录是我就奇怪的很,原来是这个org.eclipse.jdt.internal.compiler.batch.Main.main东东,我 说怎么他的机器是没javac却 可以把 .java文件编译成.class文件设,是这家伙的功劳啊,但是 Tomcat还是离不开jdk吧
Tomcat为什么不也用这个org.eclipse.jdt.internal.compiler.batch.Main.main呢???
zjf405 2007-10-30
  • 打赏
  • 举报
回复
学习
kobygao 2007-10-24
  • 打赏
  • 举报
回复
不错,长见识了.
xiyuan1999 2007-10-23
  • 打赏
  • 举报
回复
不用
YuLimin 2007-10-16
  • 打赏
  • 举报
回复
好贴:)呵呵。
JBossWeek 2007-10-15
  • 打赏
  • 举报
回复
缺省情况下,JBoss中jsp的编译过程如下:
1、org.apache.jasper.compiler.Compiler负责从jsp生成java文件
2、org.apache.jasper.compiler.JDTCompiler负责编译java生成class文件
worm_oz提供的资料不错,抽个时间好好看看。

worm_oz 2007-10-15
  • 打赏
  • 举报
回复
上面的文章有中文版
http://www.ibm.com/developerworks/cn/websphere/techjournal/0702_col_johnson/0702_col_johnson.html
worm_oz 2007-10-15
  • 打赏
  • 举报
回复
确实可以不用JDK的javac来编译,参考
http://www.ibm.com/developerworks/websphere/techjournal/0702_col_johnson/0702_col_johnson.html

对JSP的原理有详细介绍,其中The translation phase有如下说明
3. Java source code compilation

The JSP container compiles the .java file it has generated. Java compilation creates a binary class -- the JSP page implementation class -- which resides on disk as a .class file.* If there are Java compilation errors, then error messages are generated that identify the error, the JSP line number, and the equivalent .java source file line number where the error took place.

WebSphere Application Server, like most JSP containers, supports the Eclipse Java Development Tools (JDT) compiler, as well as the JDK's javac. WebSphere Application Server started supporting the JDT compiler with Version 6.1. The JDT compiler is the default Java compiler for the JSP container because it operates very efficiently in an Open Services Gateway Initiative (OSGi) environment.

也就是说只需要JDT compiler就能将.java编译成class文件了。
worm_oz 2007-10-15
  • 打赏
  • 举报
回复
这段代码是用com.sun.tools.javac.Main来编译一个Java文件,需要JDK的tools.jar
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
javac.compile(new String[] {"-classpath", "rt.jar", "A.java"});

这段代码是用org.eclipse.jdt.internal.compiler.batch.Main编译同样的Java文件,需要jdtcore.jar或JBoss的jasper-jdt.jar,不需要JDK
org.eclipse.jdt.internal.compiler.batch.Main.main(new String[] {"-classpath", "rt.jar", "A.java"});
xiangbo520 2007-10-14
  • 打赏
  • 举报
回复
jboss中的TOMCAT内置了一个Eclipse JDT编译器,它可以在不需要JDK,只要有JRE就可以编译JSP,但servlet就不行了。
yilinhust 2007-10-14
  • 打赏
  • 举报
回复
LZ没装JDK?那还算Java程序员吗???
atomic_age 2007-10-14
  • 打赏
  • 举报
回复
JSP的编译过程是称将JSP编译成java代码。由jsp生成的java源代码和servlet的代码差不多,其实就是servlet。这和应用服务器无关,是由jsp编译器编译的,jsp编译器一般是由java代码写成,如果是tomcat,这个编译器在jasper.jar中。这一步是不需要javac的。但到了第二步,也就是要将jsp编译所生成的java源代码再编译成*.class文件。这就必须要javac了。因为只有javac可以将*.java编译成*.class。至于机器上没有javac。有可能是其他的目录中有或是系统直接调用的java编译的库(javac只是个壳,具体的功能全在dll中(如果是linux/unix就在*.so中))。

如以编译jsp(jsp代码->java源代码)不需要javac,但要运行jsp(首先要java源代码->java的class文件),就必须要有*.class文件,因此,必须要使用java编译器,javac。 再查一下吧,硬盘上应该有类似的东西
worm_oz 2007-10-14
  • 打赏
  • 举报
回复
果然如此,可以参考相关的JavaDoc:

http://tomcat.apache.org/tomcat-5.5-doc/jasper/docs/api/org/apache/jasper/compiler/Compiler.html

http://tomcat.apache.org/tomcat-5.5-doc/jasper/docs/api/org/apache/jasper/compiler/JDTCompiler.html

另外看JDTCompiler.java的源代码,可以发现是用org.eclipse.jdt.internal.compiler包来编译的
http://www.docjar.com/html/api/org/apache/jasper/compiler/JDTCompiler.java.html

感谢LS提供线索,又学到新知识了
加载更多回复(7)

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧