动态修改java代码 动态修改js代码

java问题,动态修改java类里面的一个方法

//创建文件输出流

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的海兴网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

PrintStream ps=new PrintStream("./log.txt");

//设置新的输出流 System.setErr(ps);

System类的out、err、in成员变量都是final类型的,不能直接复制,要通过setOut()、setErr(),setIn()方法来改变流。上例是通过setOut()方法改变输入流输入位置,将输出重定向到一个固定的目录,实现程序日志

e.printstacktrace 默认用的就是System的输出

怎么动态编译Java源文件

(Write once, run anywhere)” 的目标。Java类文件中包含的字节代码可以被不同平台上的JVM所使用。Java字节代码不仅可以以文件形式存在于磁盘上,也可以通过网络方式来下载,还可以只存在于内存中。JVM中的类加载器会负责从包含字节代码的字节数组(byte[])中定义出Java类。在某些情况下,可能会需要动态的生成 Java字节代码,或是对已有的Java字节代码进行修改。这个时候就需要用到本文中将要介绍的相关技术。首先介绍一下如何动态编译Java源文件。

动态编译Java源文件

在一般情况下,开发人员都是在程序运行之前就编写完成了全部的Java源代码并且成功编译。对有些应用来说,Java源代码的内容在运行时刻才能确定。这个时候就需要动态编译源代码来生成Java字节代码,再由JVM来加载执行。典型的场景是很多算法竞赛的在线评测系统(如PKU JudgeOnline),允许用户上传Java代码,由系统在后台编译、运行并进行判定。在动态编译Java源文件时,使用的做法是直接在程序中调用Java编译器。

 JSR 199引入了Java编译器API。如果使用JDK 6的话,可以通过此API来动态编译Java代码。比如下面的代码用来动态编译最简单的Hello World类。该Java类的代码是保存在一个字符串中的。

 public class CompilerTest { 

  public static void main(String[] args) throws Exception {

  String source = "public class Main { public static void main(String[] args) {System.out.println(\"Hello World!\");} }"; 

  JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 

  StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); 

  StringSourceJavaObject sourceObject = new CompilerTest.StringSourceJavaObject("Main", source); 

  Iterable extends JavaFileObject fileObjects = Arrays.asList(sourceObject); 

  CompilationTask task = compiler.getTask(null, fileManager, null, null, null, fileObjects); 

  boolean result = task.call(); 

  if (result) { 

修改java源码解决keys报错

编程错误解决方法

Java入门基础第4天《Java编程规范及编译源代码常见错误的解决方法》

爱笑的陈sir

原创

关注

10点赞·484人阅读

大家傍晚好呀!通过学习Java入门基础第3天我们了解了怎么用记事本编写运行Java程序,但是这两天我收到了很多大家的一部分问题?说一下问的最多的吧。如,我的程序运行不了,一行代码,5个报错,编写、编译错误、编码格式错误等等,总之五花八门。

根据所述问题,今天聊聊Java编程规范。方便大家观看,把之前的文章整合了。

Java入门基础第1天(什么是Java?)

Java入门基础第2天(java jdk下载与安装教程)

Java入门基础第3天《使用记事本编写运行Java程序》

Java编程规范及编译源代码常见错误的解决方法

一、编程规范

二、命名规则

三、编码格式规定

四、javac 编译器编译源代码文件常见的问题

五、 解释执行.dass文件常见问题

一、编程规范

我们先简单了解一下什么是编程规范?

编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用

二、命名规则

基本要求是,程序中的各个要素都遵守命名规则,

然后在编码中严格按照编码格式编写代码。

命名规则包括以下几点:

► 包的名称由一个小写字母序列组成。

► 类的名称由大写字母开头,其他字母都由小写的单词组成。

► 类的实例的名称由一个小写字母开头,后面的单词由大写字母开头。

► 常量的名称都大写,并且指出完整含义。 参数的名称无其他具体规定。

► 数组的命名使用“类型[] 数组名”的形式。

三、编码格式规定

► 程序最开始编写导入包和类语句,如 import 语句。

import 语句可以有多行,编写完 import 语句后空一行。

► 定义 public 类,顶格书写。类的主体左括号{不换行书写,右括号}顶格书写。

► 定义 public 类中的变量,缩进书写。

► 定义方法用缩进书写,方法的左括号{不换行书写,右括号}和方法首行第一个字符对齐。方法体要再次缩进书写,最后一个变量定义和第一个方法定义之间、方法和方法之间最好空一行。

四、javac 编译器编译源代码文件常见的问题

我们在使用javac 编译器编译源代码时文件时,会出现几个常见的报错问题。

错误描述1、Error:cannot read:HelloJava.java javac。 工具程序找不到指定的 java文件

解决方法:这个需要检查一下你的文件是否存储在当前目录中,或文件名是否错误。

错误描述2、 HelloJava.java:4:class HelloJava is public,should be declared in a file named MyApplication.java。

解决方法:这是你的源文件中类的名称和源文件名称不符,

需要确定源文件名称和类名称是否相同。

错误描述3、 HelloJava.java:6:cannot find symbol。

解决方法:可能是你的源程序文件中某些代码部分输入错了,

最常见的原因可能是没有注意到字母的大小写。

错误描述4、Javac 不是内部或外部命令、可执行程序或批量文件。

解决方法:这是你的 path 设置有误或这你没有在 path 系统变量中加入 JDK 的 bin 目录。

五、 解释执行.dass文件常见问题

我们在解释执行 .dass 文件时,可能会出现以下几个常见的错误报错问题:

错误描述1、 Exception in thread “main” java.lang.NoClassDe£FoundError。

报错出现在Java 工具程序找不到所指定的 .class 类,

需要确定指定的类是否存储在当前目录中,名称是否正确。

错误描述2、 Exception in thread “main” java.lang.NoSuchMetliodError:main。

问题出现在没有指定 Java 程序的入口。

Java 工具程序指定的类必须有一个程序入口,

也就是必须包括 main(String args[]) 这个方法。

鼓励: 如果你觉得博主的文章的不错或者对你有帮助,

可以点一个免费的关注支持一下博主,

如果三连收藏支持就更好了吖,嘿嘿嘿,谢谢。


当前名称:动态修改java代码 动态修改js代码
标题路径:http://pwwzsj.com/article/docpeid.html