java动态编译class,如何把JAVA文件编译成class文件啊求大神解答急啊

1,如何把JAVA文件编译成class文件啊求大神解答急啊如果你用了eclipse之类的编译软件,它会自动编译 。如果没有那就用命令行手动编译javaccode.javajava code
2 , 在java代码中实现动态编译java文件import javax.tools.*;import java.io.*;/** * @author hardneedl */final public class MyCompile /** * @param args 命令行参数只有1个,即待编译的源代码文件的绝对路径 * @throws FileNotFoundException */ public static void main(String... args) throws FileNotFoundException JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); int r = compiler.run(null,null,null,args[0]); System.out.println(r == 0? "成功":"失败"); }}
3,java编译为CLASS问题你的classpath有没有配:“.;”,表示当前目录,有的话就把,gb2gbk.java放到c:\java\下 , 然后在cmd中输入: cd c:\java 此时cmd变成: c:\java> 然后再执行: javac gb2gbk.java ok?。∩傻腸lass在 c:\java 里面?。?---------------------------------漂亮的分割线---------------------------------说一下,你的类有语法错误: ------------------------------------- gb2gbk.java:32: 不是语句 e; 1 错误 ------------------------------------- 这个“32: 不是语句”不是jdk不能运行,而是说 , gb2gbk.java这个类文件的第32行有语法错误,它出错的地方在 e; 这里?。?"e;"当然不是一个语句?。?e要么是个变量名,要么是个方法名 , 单独出现在这里肯定是错误的?。?你试试编译这个,肯定能通过: 文件名:helloworld.java 内容: public class helloworld public static void main(string[] args) system.out.println("hello world!!"); } }JDK1.5 没装好吧 - -看看你的 *.java 文件扩展名是什么?是不是把文件真正的扩展名改成.java 比如你看得*.java 其实是 *.java.txt设置环境变量 pathWindows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH 。JAVA_HOME指向的是JDK的安装路径,如C:\JDK_1.4.2 , 在这路径下你应该能够找到bin、lib等目录 。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如C:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx…… 设置方法: JAVA_HOME=C:\JDK_1.4.2 PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了 。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成C:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) : PATH=%JAVA_HOME%\bin;%PATH% 同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了 。CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行 。CLASSPATH=.;%JAVA_HOME%\lib\tools.jar 首先要注意的是最前面的".;",如果你看不清,我给你念念——句点分号 。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞 , 这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,所以如果喜欢盘根究底的朋友不妨研究一下LINUX 。为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决 。具体的设定方法: win2k\xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了 。win9x用户修改autoexec.bat文件,在其末尾加入: set JAVA_HOME=C:\JDK_1.4.2 set PATH=%JAVA_HOME%\bin;%PATH% set CLASSPATH=.;%JAVA_HOME%\lib\tools.jar 就可以了 。【java动态编译class,如何把JAVA文件编译成class文件啊求大神解答急啊】

    推荐阅读