- 浏览: 204797 次
- 性别:
- 来自: 青岛
最新评论
-
sunysh005:
界面太丑了,功能没有问题
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
liwh1989 写道
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
...
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
SWFUpload+commons-fileupload 上传文件 -
貌似掉线:
已用上。多谢!
native2ascii的 java实现
1. 加载所有 jar 包中同名的配置文件
/** * 加载所有 jar 包中同名的配置文件 * @param resourceName * @param classLoader * @return * @throws IOException */ public static Properties loadAllProperties(String resourceName, ClassLoader classLoader) throws IOException { Properties properties = new Properties(); Enumeration<URL> urls = classLoader.getResources(resourceName); while (urls.hasMoreElements()) { URL url = urls.nextElement(); InputStream is = null; try { URLConnection con = url.openConnection(); con.setUseCaches(false); is = con.getInputStream(); properties.load(is); } finally { if (is != null) { is.close(); } } }// end while return properties; }// end method loadAllProperties().
2. 通过反射读写对象的属性值
/** * 设置对象实例的一个属性值 * @param obj * @param fieldName * @param value */ public static void setFieldValue(Object obj,String fieldName,Object value){ try { Field field = obj.getClass().getDeclaredField(fieldName); // step1 set public field if((field.getModifiers() & Modifier.PUBLIC) != 0){ field.set(obj, value); return; } // step2 invoke public setMethod String setMethod = "set" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1); Method method = obj.getClass().getDeclaredMethod(setMethod, new Class[]{value.getClass()}); if((method.getModifiers() & Modifier.PUBLIC) != 0){ method.invoke(obj, value); return; } // step3 directly set value field.setAccessible(true); field.set(obj, value); field.setAccessible(false); } catch (NoSuchFieldException e) { } catch(NoSuchMethodException e){ } catch(Exception e){ } } /** * 返回对象实例的一个属性值 * @param obj * @param fieldName * @return */ public static Object getFieldValue(Object obj,String fieldName){ Object value = null; try { Field field = obj.getClass().getDeclaredField(fieldName); // step1 get public field if((field.getModifiers() & Modifier.PUBLIC) != 0){ return field.get(obj); } // step2 invoke public getMethod String getMethod = "get" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1); Method method = obj.getClass().getDeclaredMethod(getMethod, new Class[]{}); if((method.getModifiers() & Modifier.PUBLIC) != 0){ return method.invoke(obj); } // step3 directly get value field.setAccessible(true); value = field.get(obj); field.setAccessible(false); } catch (NoSuchFieldException e) { } catch(NoSuchMethodException e){ } catch(Exception e){ } return value; }
3. 字符串前缀填充
/** * 字符串前缀填充 * @param max 最大长度 * @param ch 填充字符 * @param value 原始值 * @return */ public static String fillPrefix(int max, char ch, String value){ if (value == null || value.length() >= max){ return value; } StringBuilder sb = new StringBuilder(value); for (int i=value.length(); i<max; i++){ sb.insert(0, ch); } return sb.toString(); }
4. 首选项读写 [数据持久化到操作系统中]
import java.util.prefs.*; public class Main{ public static void main(String[] args){ Preferences prefs = Preferences.userNodeForPackage(Main.class); int freeTimes = prefs.getInt("freeTimes", 10); freeTimes--; prefs.putInt("freeTimes", freeTimes); if (freeTimes < 0){ System.out.println("已过期,不可运行."); System.exit(0); } System.out.println("还可运行 [" + freeTimes + "] 次."); } }
5. 动态编译 Java 源文件
package org.demo.compiler; import java.io.IOException; import java.lang.reflect.Method; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.SimpleJavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; import javax.tools.JavaCompiler.CompilationTask; /** * 动态编译 * 参考: http://www.infoq.com/cn/articles/cf-java-byte-code * @author * @date 2010-12-26 * @file org.demo.compiler.DynamicCompiler.java */ public class DynamicCompiler { /** * @param args */ public static void main(String[] args) { System.out.println(calculate("(3+4)*7 - 10")); } /** * 计算表达式的值 * @param expression * @return */ private static double calculate(String expression){ // class info String className = "CalculatorMain"; String methodName = "calculate"; String source = "public class " + className + "{" + " public static double " + methodName + "(){" + " return " + expression + ";" + " }" + "}"; // compilation units StringJavaFileObject obj = new StringJavaFileObject(className, source); Iterable<? extends JavaFileObject> fileObjs = Arrays.asList(obj); // compiler options String path = DynamicCompiler.class.getClassLoader() .getResource("").getPath(); if (path.startsWith("/")){ path = path.substring(1); } List<String> options = new ArrayList<String>(); options.add("-d"); options.add(path); // compile the dynamic class JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileMgr = compiler.getStandardFileManager(null, null, null); CompilationTask task = compiler.getTask(null, fileMgr, null, options, null, fileObjs); boolean result = task.call(); // invoke the method if (result){ ClassLoader loader = DynamicCompiler.class.getClassLoader(); try { Class<?> clazz = loader.loadClass(className); Method method = clazz.getMethod(methodName, new Class[]{}); Object value = method.invoke(null, new Object[]{}); return (Double)value; } catch (Exception e){ e.printStackTrace(); throw new RuntimeException("内部错误: " + e.getMessage()); } } else { throw new RuntimeException("错误的表达式: " + expression); } } /** * 基于 String 的 java 对象 * @author * */ static class StringJavaFileObject extends SimpleJavaFileObject{ private String content = null; protected StringJavaFileObject(String className, String content) { super( URI.create("string:///" + className.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE ); this.content = content; } @Override public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException { return content; } } }
6. 在 java 中执行 javascript
http://www.ibm.com/developerworks/cn/java/j-lo-jse66/index.html
package org.demo.javascript; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; /** * 在 java 中执行 javascript * @author * @date 2010-12-26 * @file org.demo.javascript.JsMain.java */ public class JsMain { public static void main(String[] args) { String js = "println('Hello world!');" + "function getDatetime(){" + " var date = new Date();" + " var year = date.getFullYear();" + " var month = date.getMonth() + 1;" + " var day = date.getDate();" + " var hour = date.getHours();" + " var minute = date.getMinutes();" + " var second = date.getSeconds();" + " if (month < 10){ month = '0' + month;}" + " if (day < 10){day = '0' + day;}" + " if (hour < 10){hour = '0' + hour;}" + " if (minute < 10){minute = '0' + minute;}" + " if (second < 10){second = '0' + second;}" + " return year + '-' + month + '-' + day + ' '" + " + hour + ':' + minute + ':' + second;" + "}"; ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try { engine.eval(js); if (engine instanceof Invocable){ Invocable invocable = (Invocable)engine; Object result = invocable.invokeFunction("getDatetime"); System.out.println(result); } } catch (Exception e) { e.printStackTrace(); } } }
Aviator 一个基于 java 的表达式引擎
http://code.google.com/p/aviator/
7. END
发表评论
-
ubuntu 里安装 db2
2011-04-11 16:17 5301# 下载 http://www-01.ibm.com ... -
几个小算法题
2011-04-03 13:40 1145/** * 数字三角 * 当 n == 7 时输 ... -
获取 SkyDrive 的文件外链固定地址
2011-04-03 11:47 1462javascript: var id = window.se ... -
常用知识记录
2011-04-02 17:25 1632sql 部分 1. 查询已创建的数据库 // ... -
Java 与 C++ 在表达式运算上的一点异同
2010-12-25 00:24 12941. java public class Main{ ... -
SWFUpload+commons-fileupload 上传文件
2010-12-17 19:20 11013说明:使用SWFUpload 上传文件,可在客户端校验文件大小 ... -
在 ubuntu 下搭建 ftp 服务端 [ vsftpd ]
2010-11-16 20:11 1903vsftpd 1. 安装 ftp 服务端 ... -
Tomcat 常用操作
2010-11-16 13:47 2679tomcat 常用操作 1. 安装 tomcat 1.1 ... -
在 ubuntu 下搭建 svn 服务端
2010-11-13 20:43 3011参考: http://wiki.ubunt ... -
正则表达式常用功能代码
2010-11-02 19:37 13351. 校验 /** * 校验 email * @pa ... -
三种常见的排序方法[选择,冒泡,快速]
2010-10-17 17:51 1120public class Main{ public ... -
Filter 常用代码
2010-10-12 22:50 12291. 压缩 Filter // GZIPFilter.jav ... -
log4j 常用配置代码
2010-10-12 14:35 1399Reference library: commons-log ... -
计算组合数并输出
2010-09-14 09:35 5616问题描述:计算一组数据的组合数并输出 例如:输入1,2,3 ... -
native2ascii的 java实现
2010-09-13 13:49 3893描述:简单模拟JDK自带的 native2ascii.exe ... -
计算全排列
2010-09-13 09:04 1608问题描述:计算一组数 ... -
apache commons dbcp 学习与使用
2010-06-18 20:37 1604类结构 org |_demo |_d ... -
Java常用功能代码
2010-06-10 14:33 59121. 屏幕截图 public static ... -
一个关于组合数的问题
2010-05-03 20:09 11811. 题目来源 未解之谜俱 ... -
程序员学习之路
2010-04-14 20:59 14991. JavaScript 1.1 全方位、多角度学习Jav ...
相关推荐
2. **依赖注入**:Spring的核心特性之一是依赖注入,它允许开发者在运行时将对象与它们的依赖关系组合在一起,而不是在代码中硬编码这些依赖。这增强了代码的可测试性和可维护性。 3. **Spring MVC**:Spring的...
在“Java常用源程序代码”这个压缩包中,我们能够找到一系列与Java编程相关的源代码文件,这些文件被精心组织在不同的文件夹中,每个文件夹都代表着一个特定的主题或功能领域。通过深入研究这些代码,我们可以学习到...
以下是对Java常用开发代码的一些核心知识点的详细阐述: 1. **基础语法**:Java的基础语法包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)、运算符(算术、比较、逻辑、位操作等)、流程控制(if语句、...
20个开发人员非常有用的Java功能代码
本压缩包“java常用代码”集合了一系列基础到进阶的Java代码示例,涵盖了多个关键领域,有助于初学者快速掌握Java编程的核心概念。 1. **遗产算法**:在Java中,继承是面向对象特性之一,它允许一个类(子类)继承...
在"Java常用代码整理"这个主题中,我们可以探讨多个Java编程中的关键知识点,包括基础语法、面向对象特性、异常处理、集合框架、IO流、多线程、网络编程以及实用工具类等。 1. **基础语法**:Java的基础语法包括...
各种Java功能代码,Java访问XML文件,Java数据库访问技术,Java对工作方式日期的处理
在“java常用实验代码”这个文档中,我们可以看到一系列与Java编程相关的实践项目,旨在帮助学习者深入理解Java的核心概念和技术。以下是这些实验代码所涵盖的知识点的详细解释: 1. **接口定义及实现**: Java...
这个名为“Java基本常用代码示例”的资源集包含了Java程序设计中的一些基础和常见代码片段,对于初学者或需要复习基本概念的开发者来说非常有用。下面我们将深入探讨这些标签所涵盖的Java基本知识点。 1. **数据...
"100多个非常有用的Java功能代码"集合就是这样一个资源库,它包含了大量经过验证、优化的代码示例,可以帮助程序员快速解决实际问题。这个压缩包可能包含了从基础操作到高级特性的广泛代码示例,对于学习和提升Java...
本文主要介绍了四种常用的 Java 代码扫描工具,并对它们的功能、特性等方面进行了分析和比较。这些工具分别是 Checkstyle、FindBugs、PMD 和 Jtest。静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的...
"java常用jar包"这个主题涵盖了Java与数据库交互以及日志管理的核心库。这里我们将深入探讨其中涉及的几个关键知识点。 首先,对于"用于SqlServer2000和SqlServer2005数据库连接"的jar包,主要指的是JDBC驱动,Java...
本项目“常用单位换算器 Java源代码”提供了一个实用的工具,能够帮助用户进行长度、时间、温度等常见物理量的单位转换。下面将详细介绍这个项目中的关键知识点。 首先,我们来探讨Java编程基础。Java是一种面向...
总之,这份"一个java常用类库的源代码"资源对于Java程序员来说是一份宝藏。通过研究源码,不仅可以巩固基础,还能了解和学习到最新的编程技术和设计理念,从而提高编程效率和软件质量。无论是初学者还是经验丰富的...
这些类通常以“Utils”或“Helper”结尾,如Apache Commons Lang中的StringUtils、ArraysUtils等,它们提供了字符串操作、数组处理等常用功能。 在给定的压缩包文件"easycms-common-1.0"中,我们可以推测这是一个...
这个"java常用代码工具包"中的"新建文件夹"可能包含了上述功能的实现代码或配置文件。使用时,开发者需要将这些代码导入到项目中,通过引用和调用来利用这些工具类。同时,阅读和理解这些工具类的源代码也是一种学习...
15. **Spring框架**:Spring是Java开发中最常用的框架之一,它提供了依赖注入、AOP(面向切面编程)等功能,极大地简化了企业级应用的开发。 16. **JDBC**:Java Database Connectivity,用于连接Java应用程序和...
### Java常用系统类库实验详解 #### 实验概述与目标 本次实验主要聚焦于Java的预定义类,尤其是那些在日常编程中频繁使用的系统类库。实验旨在加深学生对Java预定义类的理解,掌握常用类的运用技巧,以及熟练方法...