¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯
Top / Java / TIPS½¸

¤¢¡¢¤³¤ì¤Ã¤Æ¤Ù¤ó¤ê¤À¤Ê¤¢¤Ã¤Æ»×¤Ã¤¿¥³¡¼¥Ç¥£¥ó¥°¤Î¥á¥â¡£

¿ôÃͤÎʸ»úÎó¥Õ¥©¡¼¥Þ¥Ã¥ÈÊÑ´¹

double¤È¤«¤Î¿ôÃͤò¥Õ¥©¡¼¥Þ¥Ã¥Æ¥£¥ó¥°¤·¤¿Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£¤³¤ó¤Ê´¶¤¸¡£

String.format("%1$,.0f" + " KBÃæ¡¢" + "%2$,.0f"+ " KB½èÍý¤·¤Þ¤·¤¿¡£" + "%3$,.0f" + " %%½èÍý´°Î»",
      a / 1024.0, b / 1024.0,  c / 1024.0);

¤Ê¤«¤Î¥×¥ì¡¼¥¹¥Û¥ë¥À¤Ï¡¢¤½¤ì¤¾¤ì

%1$ -> a / 1024.0
%2$ -> b / 1024.0
%3$ -> c / 1024.0

¤Ã¤Æ²ÄÊÑŤΰú¿ô¤ËÂбþ¡£¤µ¤é¤Ë

,.0f

¤Ç¡¢¡Ö£³¥±¥¿¤Ç¥«¥ó¥Þ¶èÀÚ¤ê¡×¡Ö¾®¿ôÅÀ°Ê²¼¤Ï£°¥±¥¿¡×¤Ã¤Æ°ÕÌ£¡£¤Á¤Ê¤ß¤Ë¥Õ¥©¡¼¥Þ¥Ã¥ÈÆâ¤Ç%¤ò»È¤¦¾ì¹ç¤Ï¡¢¾åµ­¤Î¤è¤¦¤Ë%%¤Ã¤Æ¥¨¥¹¥±¡¼¥×¡£¡£

java.util.Date -> int

¤Ä¤¤¤Ç¤Ë¡£¡£

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());  <-2009/6/8¤Ë¼Â¹Ô¤·¤¿
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year);
System.out.println(month);
System.out.println(day);

¤Ê¤É¤Ç¡¢Date¤òint¤ËÊÑ´¹²Äǽ¤Ç¤¹¡£

2009
5
8

Month¤À¤±¤ÏÆüËܿͤδ¶³Ð¤È°ì¤ÄÃͤ¬¤º¤ì¤ë¤Î¤ÇÃí°Õ¡£

ƱÍͤˡ¢Calendar#set(int year, int month, int date) ¡¢¡¢¶ñÂÎŪ¤Ë¤Ï

Calendar calendar = Calendar.getInstance();
calendar.clear(); <-²¼¤Ç»þʬ¤ò»ØÄꤷ¤Ê¤¤¤«¤é¡¢clear¤·¤Ê¤¤¤È¸½ºß»þ¹ï¤¬ÊÝ»ý¤µ¤ì¤Á¤ã¤¦¤Î¤Ç¡£
calendar.set(year, month, day);
Date time = calendar.getTime();

¤È¤¹¤ë¤³¤È¤Ç¡¢int -> java.util.Date¤â£Ï£Ë¤½¤¦¤Ç¤¹¤Í¡£

Calendar (Java 2 Platform SE 5.0)

String -> java.util.Date

ʸ»úÎ󤫤éjava.util.Date¤òÀ¸À®¤¹¤ëÊýË¡¤Ç¤¹¤¬¡¢

Date parseDate = new SimpleDateFormat("yyyy/MM/dd").parse(date);
System.out.println(parseDate);

¤Ê¤É¤È¤ä¤ì¤Ð¤Ç¤­¤Þ¤¹¤¬¡¢Commons Lang¤Î org.apache.commons.lang.time.DateUtils? ¤ò¤Ä¤«¤¨¤Ð¤¤¤¯¤Ä¤«¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤òƱ»þ¤Ë»ØÄꤷ¤ÆDate¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Date date = DateUtils.parseDate(dateStr, new String[] { "yyyyMMdd","yyyy/MM/dd" });

°ú¿ô¤Î¥Ñ¥¿¡¼¥ó¤Ç½ç¡¹¤ËdataStr¤ò¥Ñ¡¼¥¹¤·¤Æ¡¢Date¥¯¥é¥¹¤òÀ¸À®¤·¤Æ¤¯¤ì¤Þ¤¹¡£

java.util.Date -> String

µÕ¤Ë¡¢Date¤«¤éʸ»úÎó¤ò¼èÆÀ¤¹¤ëÊýË¡¡£

String nowDateString = DateFormatUtils.format(nowDate, "yyyy/MM/dd");
System.out.println(nowDateString);

¥Õ¥©¡¼¥Þ¥Ã¥È¤Î»ØÄê¤Î»ÅÊý¤Ë¤è¤Ã¤Æ¡¢Ç¯¤ò¼èÆÀ¡¢·î¤ò¼èÆÀ¡¢ÆüÉÕ¤ò¼èÆÀ¡¢¤È¤«¤¬¤Ç¤­¤Þ¤¹¤Í¡£

¡ÖÆü¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ¤¿Date¤ò¼èÆÀ¤¹¤ë

ÆüÉÕ¤À¤±´ÉÍý¤·¤¿¤¤¤ó¤À¤è¤Ê¤¡¤Ã¤Æ¤È¤­¤¬¤è¤¯¤¢¤ê¤Þ¤¹¤¬¡¢DateUtils? ¤Ï¤½¤ÎÍ×µá¤Ë±þ¤¨¤Æ¤¯¤ì¤Þ¤¹¡£

Date nowDate = new Date();
System.out.println("Today: " + nowDate);
// ¡ÖÆü¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ
Date dateTruncate = DateUtils.truncate(nowDate, Calendar.DAY_OF_MONTH);
System.out.println("Today: " + dateTruncate + " <-¡ÖÆü¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ");
// ¡Ö·î¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ
dateTruncate = DateUtils.truncate(nowDate, Calendar.MONTH);
System.out.println("Today: " + dateTruncate + " <-¡Ö·î¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ");
// ¡Öǯ¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ
dateTruncate = DateUtils.truncate(nowDate, Calendar.YEAR);
System.out.println("Today: " + dateTruncate + " <-¡Öǯ¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ");

·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ê:

Today: Mon Jun 08 10:00:54 JST 2009
Today: Mon Jun 08 00:00:00 JST 2009 <-¡ÖÆü¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ
Today: Mon Jun 01 00:00:00 JST 2009 <-¡Ö·î¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ
Today: Thu Jan 01 00:00:00 JST 2009 <-¡Öǯ¡×¤è¤ê²¼¤òÀÚ¤ê¼Î¤Æ

stackTrace¤ò¼èÆÀ¤¹¤ë

ɸ½à¥¨¥é¡¼¤Ë½ÐÎϤ¹¤ë¤Ê¤ée.printStackTrace?()¤Ç¤¹¤¬¡¢Ê¸»úÎó¤È¤·¤Æ¼èÆÀ¤·¤¿¤¤¾ì¹ç¤Ï¡¢¥¹¥È¥ê¡¼¥à¤Ë¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤ò½ÐÎϤ·¤Þ¤¹¡£

private String exception2String(Exception e) {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  e.printStackTrace(new PrintStream(baos));
  return baos.toString();
}

ʸ»ú¥³¡¼¥É¤È¤«Âç¾æÉפÀ¤Ã¤±¤È¤«¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤ó¤Ê´¶¤¸¤Ç¤Ç¤­¤Þ¤¹¡£

¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤«¤é¡¢Ê£¿ô¤Î¥Ç¡¼¥¿¤òÇÛÎó¤Ç¼èÆÀ¤¹¤ë

Java Collections Framework ¤Î org.apache.commons.collections.ExtendedProperties? ¤òÍѤ¤¤ë¤È¡¢

  • hoge.properties
    data=hoge@fuga.com
    data=hogehoge@fuga.jp
    ¤Ê¤É¤È¤¤¤¦Ê£¿ô¤Î¥Ç¡¼¥¿¤òÇÛÎó¤Ç¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥¯¥é¥¹¥Ñ¥¹¤¬Ä̤俾ì½ê¤ËÃÖ¤¤¤Æ¤ª¤­¤Þ¤¹¡£

¾åµ­¥Ç¡¼¥¿¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥µ¥ó¥×¥ë¥³¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ꡣ

ExtendedProperties props = new ExtendedProperties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream resourceAsStream = loader
        .getResourceAsStream("hoge.properties");
InputStream in = new BufferedInputStream(resourceAsStream);
props.load(in);
String[] dataArray = props.getStringArray("data");

¤Ê¤É¤È¤·¤Æ¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥Ñ¥¤¥×¤µ¤ì¤¿É¸½àÆþÎϤò¼èÆÀ¤¹¤ë

¤½¤¦¤¤¤¨¤ÐJava¤Ã¤ÆÉ¸½àÆþÎϤò¤É¤¦¼õ¤±¼è¤ë¤ó¤À¤Ã¤±¡©¡©¤È¤¤¤¦¤³¤È¤ÇÄ´¤Ù¤¿¥á¥â¡£¥Ñ¥¤¥×¤µ¤ì¤¿É¸½àÆþÎϤòecho¤¹¤ë¥µ¥ó¥×¥ë¡£

package nu.mine.kino.mail.utils;

import java.io.BufferedInputStream;
import java.io.IOException;

public class Echo {
    public static void main(String[] args) {
        BufferedInputStream in = new BufferedInputStream(System.in);
        try {
            int size = in.available();
            byte[] bytes = new byte[size];
            in.read(bytes);
            System.out.println(new String(bytes));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

·ë²Ì¤Ï¤¿¤È¤¨¤Ð

[hogehoge@www Test]$ ls  |  java -cp lib/sample.jar nu.mine.kino.mail.utils.Echo
build.win.properties
build_jar.xml
classes
lib
source

[hogehoge@www Test]$

ls¤Î·ë²Ì¤ò¼õ¤±¼è¤ê¡¢echo¤Ç¤­¤Þ¤·¤¿¡£

  • ¥·¥§¥ë¤«¤éJava¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤â£Ï£Ë
    [hogehoge@www Test]$ cat sample.sh
    export JAVA_HOME=/opt/jdk1.5.0_12
    export LIBDIR=lib
    export CLASSPATH=${LIBDIR}/sample.jar
    java nu.mine.kino.mail.utils.Echo
    [hogehoge@www Test]$ ls  |  ./sample.sh
    build.win.properties
    build_jar.xml
    classes
    lib
    sample.sh
    source
    
    [hogehoge@www Test]$

¤Á¤Ê¤ß¤Ëɸ½àÆþÎϤòÂÔ¤Á¼õ¤±¤Æ¤ë¤È¤­¤ËÆþÎÏ´°Î»¤òÄÌÃΤ¹¤ë¤¿¤á¤Î½ªÎ»Ê¸»ú¤Ï Platform-Specific Details: The End-of-Input Character ¤Ë½ñ¤¤¤Æ¤¢¤ê¤Þ¤·¤¿¡£

»²¹Í

Apache Axis 1.4¤ÎSSL½èÍý¤Ë¤Ï¥Ð¥°¤¬¤¢¤ê¤½¤¦

¾Ü¤·¤¯¤Ï¤Þ¤¿»þ´Ö¤¬¤È¤ì¤¿¤é¤Ë¤·¤Þ¤¹¤¬¡¢Basicǧ¾Ú¤¹¤ë¥×¥í¥­¥·¥µ¡¼¥Ð±Û¤¨¤ÇSSLÄÌ¿®¤¹¤ë¤È¤­¤ÎAxis¤Îµóư¤¬¥Ø¥ó¡£Axis¤¬À¸À®¤¹¤ë Proxy-Authorization¥Ø¥Ã¥À¤Î²þ¹Ô¥³¡¼¥É¤¬¤ª¤«¤·¤¤ÌÏÍÍ¡£HTTPS¤Î»ÅÍÍŪ¤Ë¤Ï¡¢¤Û¤ó¤È¤Ï\r\n¤¬¿ä¾©¤µ¤ì¤ë¤é¤·¤¤¤±¤É\n¤·¤«¤Ê¤¤¤¿¤á¡¢¤Þ¤ì¤Ë²òÀϤ˼ºÇÔ¤¹¤ë¥×¥í¥­¥·¥µ¡¼¥Ð¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£

BigDecimal?¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ëdouble¤Ï»È¤ï¤Ê¤¤¤Û¤¦¤¬¤¤¤¤

¤Á¤ã¤ó¤È¿ôÃÍ·×»»¤·¤è¤¦¤È»×¤Ã¤Æ¡¢double¤È¤«¤ÎÂå¤ï¤ê¤ËBigDecimal?¤ò»È¤Ã¤Æ¤¿¤ó¤À¤±¤É¡¢¤ä¤Ã¤Ñ¸íº¹¤¬½Ð¤Á¤ã¤¦¡£²¿¤Ç¤À¤í¡¼¤È»×¤Ã¤Æ¤¿¤é¡¢BigDecimal?¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ÇString¤Ç¤Ê¤¯double¤ò»È¤Ã¤Æ¤¿¤«¤é¤Ç¤·¤¿¡£double¤ò°ú¿ô¤Ë¼è¤ë¥³¥ó¥¹¥È¥é¥¯¥¿¤ÎÊý¤Ï¡¢°ú¿ô¼«ÂΤ¬¸íº¹¤¬½Ð¤Á¤ã¤Ã¤Æ¤ë¤«¤é¡¢Àµ³Î¤Ê·×»»¤¬¤Ç¤­¤Ê¤¤¤Ã¤Æ»ö¤Ç¤¹¤Í¡£ÁÇľ¤ËString¤ò»È¤Ã¤¿¤È¤³¤í¡¢¥Ó¥·¤Ã¤È·×»»¤¬¹ç¤¤¤Þ¤·¤¿¡£

¤Ã¤Æ¡¢¤è¤¯¸«¤¿¤éJavaDoc?¤Ë¤â½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¤Í¡£

classes¥Ç¥£¥ì¥¯¥È¥ê¤ò°ì³ç¤Çºï½ü¤¹¤ë¥ï¥ó¥é¥¤¥Ê¡¼

rm -rf `find ./ -type d -name classes`

¥Õ¥¡¥¤¥ë <-> byte[]¤ËÊÑ´¹¤¹¤ëUtil

import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;

/*******************************************************************************
 * Copyright (c) 2007 Masatomi KINO. All rights reserved. 
 * $Id$
 ******************************************************************************/
public class Utils {
  public static byte[] file2Byte(String file) throws IOException {
    InputStream in = null;
    byte[] pix = null;
    try {
      in = new FileInputStream(file);
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      byte[] b = new byte[1024];
      int j;
      while ((j = in.read(b)) != -1) {
        baos.write(b, 0, j);
      }
      pix = baos.toByteArray();
    } finally {
      if (in != null) {
        try {
          in.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
    return pix;
  }

  public static void byte2File(byte[] b, String outputFile)
      throws IOException {
    BufferedOutputStream stream = null;
    try {
      File file = new File(outputFile);
      FileOutputStream fstream = new FileOutputStream(file);
      stream = new BufferedOutputStream(fstream);
      stream.write(b);
    } finally {
      if (stream != null) {
        try {
          stream.close();
        } catch (IOException e1) {
          e1.printStackTrace();
        }
      }
    }
  }
} 

À°¿ô¤ò16¿Ê¤ä2¿Ê¤Çɽ¼¨¤¹¤ë

System.out.println(Integer.toHexString(15));
System.out.println(Integer.toBinaryString(15));

¼Â¹Ô·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ꡣ

f
1111

Base64¤Ç¥¨¥ó¥³¡¼¥É¤¹¤ë

Base64¤È¤ÏE-mail¤Ê¤É¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤ò»ÈÍѤǤ­¤Ê¤¤´Ä¶­¤Ç¡¢¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤ò°·¤¦¤¿¤á¤Î¥¨¥ó¥³¡¼¥ÉÊý¼°¤Ç¤¹*1¡£¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤ò¥Æ¥­¥¹¥È¥Ç¡¼¥¿¤Ë²ÄµÕÊÑ´¹¤·¤Þ¤¹¡£

Commons Codec¤òÍѤ¤¤ì¤Ð¡¢¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤ò´Êñ¤ËBase64¥¨¥ó¥³¡¼¥É²Äǽ¤Ç¤¹¡£

public class Base64Main {
  public static String encode(String input) {
    byte[] bs = Base64.encodeBase64(input.getBytes(), false); 
                // boolean¤Ï¤¢¤ëñ°Ì¤Ç²þ¹Ô¤òÆþ¤ì¤ë¤«¤É¤¦¤«
    return new String(bs);
  }

  public static void main(String[] args) {
    String string = encode("kino");
    System.out.println(string);
  }
}

¼Â¹Ô·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ê

a2lubw==

´Êñ¤Ç¤¹¤Í¡£°ú¿ô¤Ëbyte[]¤ò¼è¤ë¤Î¤Ç¡¢¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤«¤ébyte[]¤òºîÀ®¤·¡¢¥á¥½¥Ã¥É¤ËÅϤ·¤Æ¤¢¤²¤ì¤Ð¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤â´Êñ¤Ë¥¨¥ó¥³¡¼¥É²Äǽ¤Ê¤ï¤±¤Ç¤¹*2¡£

¤Á¤Ê¤ß¤Ë¤³¤ÎCodec¥é¥¤¥Ö¥é¥ê¤Ï²¼¤Ë½Ð¤Æ¤¯¤ë byte[] -> HexString?¤ÊÊÑ´¹¤ò¤¹¤ë¥á¥½¥Ã¥É¤Ê¤É¤â¤¢¤ê¤Þ¤¹¡£

 new String(Hex.encodeHex(b));

¤È¤¹¤ì¤ÐOK¤Ç¤¹¡£

¤¢¡¢¤è¤¯¸«¤¿¤éSHA-1¤Ç¥Ï¥Ã¥·¥å¤¹¤ë¥á¥½¥Ã¥É¤â¤¢¤ê¤Þ¤·¤¿¡£

System.out.println(DigestUtils.shaHex("kino".getBytes()));

¤Ç¤·¤¿¤ÈƱ¤¸·ë²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¼Â¹Ô·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ꡣ

c108a2616c020deeb71df83906f039e3dfcc6752

¤ª¤Ê¤¸¤Ç¤¹¤Í¡£

SHA1¤Ç¥Ï¥Ã¥·¥å²½

SHA-1¤Ï¥Ñ¥¹¥ï¡¼¥É¤Î¥Ï¥Ã¥·¥å²½¤Ê¤É¤Ë»È¤ï¤ì¤ë¥¢¥ë¥´¥ê¥º¥à¤Ç¤¹*3

 public static String encrypt(String input) {
   try {
     MessageDigest md = MessageDigest.getInstance("SHA1");
     md.update(input.getBytes("MS932"));
     return toHexString(md.digest());
   } catch (NoSuchAlgorithmException e) {
     e.printStackTrace();
   } catch (UnsupportedEncodingException e) {
     e.printStackTrace();
   }
   return null;
 }
 private static String toHexString(byte[] b) {
   StringBuffer hexString = new StringBuffer();
   String plainText=null;
   for (int i = 0; i < b.length; i++) {
     plainText = Integer.toHexString(0xFF & b[i]);
     if (plainText.length() < 2) {
       plainText = "0" + plainText;
     }
     hexString.append(plainText);
   }
   return new String(hexString);
 }
 public static void main(String[] args) {
   String string = encrypt("kino");
   System.out.println(string);
 }

¼Â¹Ô·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ꡣ

c108a2616c020deeb71df83906f039e3dfcc6752

SHA1¤Ç¥Ï¥Ã¥·¥å²½¤Ç¤­¤Þ¤·¤¿¡£MessageDigest?.getInstance("SHA1");¤Î¡ÖSHA1¡×¤ò¡ÖMD5¡×¤Ë¤¹¤ì¤ÐMD5¤Ç¥Ï¥Ã¥·¥å²½¤Ç¤­¤Þ¤¹¡£

java.lang.ThreadLocal?¤Ë¤Ä¤¤¤Æ

thlocal.set( new LegacySystemImpl2());
thlocal.set( new LegacySystemImpl());
LegacySystem impl = (LegacySystem) thlocal.get();

¤Ê¤É¤ÈƱ¤¸·¿¤Î¥¯¥é¥¹¤ò¥»¥Ã¥È¤·¤¿¾ì¹ç¡¢¤É¤¦¤â¾å½ñ¤­¤Ë¤Ê¤ë¤Ã¤Ý¤¤¡£¥½¡¼¥¹¤òÄ´¤Ù¤¿Ê¬¤±¤¸¤ã¤Ê¤¤¤±¤É¡£¡£

http://www.hyuki.com/dp/dpinfo_ThreadSpecificStorage.html#i1

Eclipse¤Î¥Ò¡¼¥×¤È¥¿¥¹¥¯¥Þ¥Í¡¼¥¸¥ã¤Î´Ø·¸

Eclipse¤Î¥Ò¡¼¥×¥µ¥¤¥º¤È¡¢¥¿¥¹¥¯¥Þ¥Í¡¼¥¸¥ã¤Îjavaw¤Î¥á¥â¥ê»ÈÍÑÎ̤δط¸¡£Eclipse¤Î¥Ò¡¼¥×¤¬

1024MÃæ¤Î500M

¤È¤«¤Ê¤Ã¤Æ¤ë¾ì¹ç¡¢1024M¤ÎÊý¤¬¥¿¥¹¥¯¥Þ¥Í¡¼¥¸¥ã¾å¤Ëɽ¼¨¤µ¤ì¤ë¡£¤À¤«¤é¼ÂºÝ¤É¤ì¤À¤±java¥×¥í¥»¥¹¤¬¥á¥â¥ê¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¤ÏOS¤«¤é¤Ï¤ï¤«¤é¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¤Í¡£

Eclipse¤ÇCVS¤Î¥Ö¥é¥ó¥Á¤ò¼è¤ê°·¤¦¡£

CVS¤Î¥È¥é¥ó¥¯(¥á¥¤¥ó¤Ã¤Æ¤¤¤¦¡©)¤È¥Ö¥é¥ó¥Á¤ò¥Þ¥¹¥¿¡¼¤·¤¿¤¯¤Á¤ç¤Ã¤È¿¨¤Ã¤Æ¤ß¤Þ¤·¤¿¡£

¤Þ¤º¤Ï¥Ð¡¼¥¸¥ç¥ó¤È¤·¤Æ¥¿¥°ÉÕ¤±¡£¥¿¥°Ì¾¤Ï¤¿¤È¤¨¤Ð

V20061026_01

¤È¤¹¤ë¡£¼¡¤Ë¥Ö¥é¥ó¥Á¤ÎºîÀ®¡£¥Á¡¼¥à >> ¥Ö¥é¥ó¥Á ¤è¤êºîÀ®¡£¥Ö¥é¥ó¥Á̾¤Ï¤¿¤È¤¨¤Ð

V20061026_01_BRANCH

¤È¤¹¤ë¡£¤½¤Î¤È¤­¡¢¥Ö¥é¥ó¥Á¤ò¥Þ¡¼¥¸¤¹¤ë¤¿¤á¤Î³«»ÏÅÀ¤Î¥¿¥°¤âÊ»¤»¤ÆÅÐÏ¿¤µ¤ì¤ë¡£¤³¤ì¤Ï¼«Æ°Åª¤Ë

Root_V20061026_01_BRANCH

¤È¤¤¤¦¥¿¥°Ì¾¤Ë¤Ê¤ë¡£¥á¥¤¥ó¤Î¥â¥¸¥å¡¼¥ë¤Ë¥Ö¥é¥ó¥Á¤ò¥Þ¡¼¥¸¤¹¤ë¤Ë¤Ï¡¢³«»ÏÅÀ¤Ã¤Æ¤Î¤¬½ÅÍפߤ¿¤¤¤À¡£

¤³¤³¤Þ¤Ç¤ÇCVS¤Ë¤Ï¾å¤Î3¤Ä¤Î¥¿¥°

V20061026_01                ¥á¥¤¥ó¦
V20061026_01_BRANCH         ¥Ö¥é¥ó¥Á¦
Root_V20061026_01_BRANCH    ¥á¥¤¥ó¦

¤¬¤Ç¤­¤ë¡£

Eclipse¥×¥í¥¸¥§¥¯¥È¤Ë¡¢¥á¥¤¥ó¤È¥Ö¥é¥ó¥ÁξÊýÍî¤È¤·¤Æ¤ª¤¯¡£¥Ö¥é¥ó¥Á¤ÎÊý¤Ï¥×¥í¥¸¥§¥¯¥È̾¤ò_branch¤È¤«¤Ä¤±¤È¤¯¡£

Eclipse¤Ç³Æ¥×¥í¥¸¥§¥¯¥È¤Ç¥½¡¼¥¹¤ò½¤Àµ¤·¤Æ¥³¥ß¥Ã¥È¤¹¤ë¡£

¥á¥¤¥ó¦¤Ï¥Ð¡¼¥¸¥ç¥ó¤Ï   1.1 -> 1.2 
¥Ö¥é¥ó¥Á¦¤Ï¥Ð¡¼¥¸¥ç¥ó¤Ï 1.1 -> 1.1.2.1

¤È¤Ê¤ë¤ß¤¿¤¤¡£

¤µ¤¢¡¢¥Ö¥é¥ó¥Á¤«¤é¥á¥¤¥ó¤Ø¥Þ¡¼¥¸¤·¤Þ¤¹¡£¥á¥¤¥ó¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¡¢¥Á¡¼¥à >> ¥Þ¡¼¥¸¤òÁªÂò¤·

¥Þ¡¼¥¸¤µ¤ì¤ë¥Ð¡¼¥¸¥ç¥ó(½ªÎ»¥¿¥°) ¤ò¥Ö¥é¥ó¥Á¤Î¥Ð¡¼¥¸¥ç¥ó   i.e. V20061026_01_BRANCH 
¶¦ÄÌ´ðËܥС¼¥¸¥ç¥ó(³«»Ï¥¿¥°)     ¤ò¤µ¤Ã¤­¤Î³«»Ï¥Ð¡¼¥¸¥ç¥ó i.e. Root_V20061026_01_BRANCH

¤ÈÁªÂò¤¹¤ë¤È¡¢º¸¤¬¥á¥¤¥ó¡¢±¦¤¬¥Ö¥é¥ó¥Á¤Î¥½¡¼¥¹Èæ³Ó²èÌ̤¬¸½¤ì¤Þ¤¹¡£Å¬µ¹Update¤¹¤ì¤Ð¥Ö¥é¥ó¥Á¤Î¥½¡¼¥¹¤¬¥á¥¤¥ó¤Ë¼è¤ê¹þ¤Þ¤ì¤Þ¤¹¡£¸å¤Ï¥á¥¤¥ó¤Ë¥³¥ß¥Ã¥È¤¹¤ì¤Ð¡¢¥Ö¥é¥ó¥Áʬ¤Î¥Þ¡¼¥¸¤Ï´°Î»¤Ç¤¹¡£

¢¨¤³¤ì¤Ï¥í¡¼¥«¥ë¥³¥Ô¡¼¤Ë¡¢³«»Ï¥¿¥°¤È½ªÎ»¥¿¥°¤Îº¹Ê¬¤ò¼è¤ê½Ð¤¹¤Ã¤Æ»ö¤«¤Ê¡©¼ÂºÝ¥Ö¥é¥ó¥Á¦¤Ç¥Þ¡¼¥¸¤·¤è¤¦¤È¤·¤¿¤é¡¢V20061026_01_BRANCH ¤ÈV20061026_01_BRANCH ¤Ë¤Ïº¹Ê¬¤¬¤Ê¤¤¤Ã¤Æ¤¤¤¦Åö¤¿¤êÁ°¤Îɽ¼¨¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£

¼Â¹ÔÃæ¤Î¥á¥½¥Ã¥É̾¤ò¼èÆÀ¤¹¤ë¡£

new Throwable().getStackTrace()[0].getMethodName();

²¿¸Î¤³¤ì¤Ç¥á¥½¥Ã¥É̾¤¬¼è¤ì¤ë¤ó¤À¤í¤¦¡£¡£¡£¤Ç¤â¤¦¤Þ¤¯¤¤¤­¤Þ¤¹¤Í¡¼

byteÇÛÎó¤ò¥Ð¥¤¥Ê¥ê¤ËÊÑ´¹¤¹¤ë¡£

µÕ¤Ë¡¢byte[]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹ÊýË¡

public static void write(byte[] b) {
  BufferedOutputStream stream = null;
  try {
    File file = new File("after.bin");
    FileOutputStream fstream = new FileOutputStream(file);
    stream = new BufferedOutputStream(fstream);
    stream.write(b);
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (stream != null) {
      try {
        stream.close();
      } catch (IOException e1) {
        e1.printStackTrace();
      }
    }

  }
}

¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤òbyteÇÛÎó¤ËÊÑ´¹¤¹¤ë

Web¥µ¡¼¥Ó¥¹¤Ç¥Ð¥¤¥Ê¥ê¤ò¥¢¥Ã¥×¤¹¤ë¤È¤­¤Ê¤É¤Ï¡¢byte[]¤ÇÅϤ¹¤ß¤¿¤¤¤Ç¤¹¡£

public byte[] createBin() {
  InputStream in = null;
  byte[] pix = null;
  try {
    in = new FileInputStream("before.bin"); <-¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    byte[] b = new byte[1024];
    int j;
    while ((j = in.read(b)) != -1) {
      baos.write(b, 0, j);
    }
    pix = baos.toByteArray();
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (in != null) {
      try {
        in.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
  return pix;
}

Apache Axis¤Ç¡¢¥×¥í¥­¥·¡¼¤ò±Û¤¨¤ë¡£

Apache Axis¤ò»È¤Ã¤¿WEB¥µ¡¼¥Ó¥¹¤ÎProxy¥¯¥é¥¤¥¢¥ó¥È¤Ç¡¢HTTP¤Î¥×¥í¥­¥·¡¼(¤ä¤ä¤³¤·¤¤)¤ò±Û¤¨¤ëÊýË¡¤òõ¤·¤Æ¤¤¤Þ¤·¤¿¡£

¤¤¤ä¤¢Eclipse¤Ç¥½¡¼¥¹¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ä¤±¤Þ¤¯¤Ã¤Æ¡¢Ãµ¤·¤¿¡¼¡£¡£¡£¡£¤É¤¦¤ä¤é¡¢

 org.apache.axis.components.net.DefaultHTTPTransportClientProperties

¤Æ¥¯¥é¥¹¤¬¡¢¤Ê¤Ë¤ä¤é¥×¥í¥Ñ¥Æ¥£¤ò¥»¥Ã¥È¤·¤Æ¤¤¤Æ¡¢¤½¤³¤¬Axis¤Î´Ä¶­ÀßÄêÃͤˤʤäƤëÌÏÍÍ¡£¤½¤·¤Æ¤³¤Î¥¯¥é¥¹¤Ï¡¢org.apache.axis.AxisProperties?¤È¤¤¤¦java.util.Properties ¤ß¤¿¤¤¤Ê¤Î¤ò»È¤Ã¤Æ¤¤¤ë¡£¥½¡¼¥¹¤ò¸«¤ë¤È¡¢http¥×¥í¥­¥·¤ò±Û¤¨¤ë¤¿¤á¤Î¥­¡¼ÃͤÏ

AxisProperties.setProperty("http.proxyHost", "proxy¤Î¥µ¡¼¥Ð̾");
AxisProperties.setProperty("http.proxyPort", "proxy¤Î¥Ý¡¼¥ÈÈÖ¹æ");
AxisProperties.setProperty("http.proxyUser", "xxxx");
AxisProperties.setProperty("http.proxyPassword", "xxxx");

±Û¤¨¤¿¡£¡£¥­¥¿¡¼¡£¡£¡£

Apache Axis¤Ç¡¢¼«¸Ê½ð̾¾ÚÌÀ½ñ¤ò»ÈÍѤ·¤ÆSSL¤µ¤»¤ëÊýË¡

¤¹¤²¡¼

HSQLDB¤Îµ¯Æ°¡¢¥Õ¥í¥ó¥È¥¨¥ó¥É¤Îµ¯Æ°

  • ¥Ç¡¼¥¿¥Ù¡¼¥¹¥µ¡¼¥Ð¤Îµ¯Æ°
    java -cp /opt/hsqldb/hsqldb.jar org.hsqldb.Server 
      -database /tmp/bd -port 9001 -system_exit=true
  • ¥Õ¥í¥ó¥È¥¨¥ó¥É¤Îµ¯Æ°
    java -cp lib/hsqldb.jar org.hsqldb.util.DatabaseManager

¥Ö¥é¥¦¥¶¤ÎCookie¤ò¼ê·Ú¤Ë»²¾È¤¹¤ë

Java¤ÎTIP¤Ç¤Ï¤Ê¤¤¤±¤É¡¢J2EE³«È¯Ãæ¤Ë¤è¤¯»È¤¦¤Î¤Ç¡£¥Ö¥é¥¦¥¶¤ÎURL¤Ë

javascript:document.cookie;

¤ÈÆþÎϤ¹¤ë¤È¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÎCookie(º£³«¤¤¤Æ¤¤¤ë¥µ¥¤¥È¤ËÂФ¹¤ë¤â¤Î¤Î¤ß)¤ò»²¾È¤Ç¤­¤Þ¤¹¡£

Jakarta Commons Lang¤Î¤¤¤í¤¤¤í

Jakarta Commons Lang¤ÏJava¤Î¥é¥¤¥Ö¥é¥ê¤À¤±¤Ç¤Ï­¤ê¤Ê¤¤¤è¤¦¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£Åª¤Êµ¡Ç½¤òÄ󶡤¹¤ë¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£¤¿¤È¤¨¤Ð¡¢¤³¤ó¤Ê´¶¤¸¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

  • toString()¤ò¼ÂÁõ¤¹¤ë¤È¤­¤Ë»È¤¦
    public String toString() {
      return new ToStringBuilder(this)
        .append("id", getId())
        .append("title",getTitle())
        .toString();
    }
    ¤È¤«¤Ç
    nu.mine.kino.rss.hibernate.Rss@33441dfb[id=10,title=hoge]
    ¤È½ÐÎϤǤ­¤¿¤ê¡¢
  • equals()¤ò¼ÂÁõ¤¹¤ë¤È¤­¤Ë»È¤¦
     public boolean equals(Object other) {
       if (!(other instanceof Rss)){
         return false;
       }
       Rss castOther = (Rss) other;
       return new EqualsBuilder()
            .append(this.getId(), castOther.getId())
            .isEquals();
     }
    ¤È¤«¤Ç¡¢getId¤¬Æ±¤¸¤Ê¤étrue¡¢¤Ê¤ó¤Æ¤³¤È¤¬¤Ç¤­¤¿¤ê¤·¤Þ¤¹¡£¤Á¤Ê¤ß¤Ëappend¤Ï¤É¤ó¤É¤ó¸å¤í¤ËÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤ÏÊØÍø¡ª¡ª

¥Õ¥£¡¼¥ë¥É¤ò¥«¥×¥»¥ë²½¤¹¤ë

ÀßÄê¥Õ¥¡¥¤¥ë¤È¤«¤Î¾ì½ê¤¬¥Õ¥£¡¼¥ë¥É¤ËÄê¿ô¤ÇËä¤á¹þ¤Þ¤ì¤Æ¤¤¤Æ¡¢Ã±ÂΥƥ¹¥È¤Î¤È¤­¤À¤±¤½¤Î¥Ñ¥¹¤òÊѤ¨¤¿¤¤¤Ê¤¢¤Ê¤ó¤Æ¤È¤­¤¬¤¢¤ê¤Þ¤¹¡£ºÇ¶á¤ÏDI¤È¤«¤ÇÊѤ¨¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤¬¤Ï¤ä¤Ã¤Æ¤Þ¤¹¤¬¡¢DI¥³¥ó¥Æ¥Ê¤Ê¤É¤â»È¤Ã¤Æ¤Ê¤¤¤È¤­¤Ê¤É¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡£

Îã¤È¤·¤Æ¥Æ¥¹¥ÈÂоݥ¯¥é¥¹¤¬Hoge¤À¤È¤·¤Æ

public class Hoge{
  private String path ="hoge/hogehoge.properties";
  .....
  public void exe(){
    new File(path).....;
  }
}

¤Ê¤ó¤Æ¤Î¤¬¤¢¤ë¤È¤­¡¢¤É¤¦¤¹¤ì¤Ð¤è¤¤¤«¤Ã¤Æ¤³¤È¤Ç¤¹¡£

¤³¤Î¾ì¹ç¡¢¤Þ¤º¤Ï¥½¡¼¥¹¤òÊѹ¹¤·¤ÆÃ±ÂΥƥ¹¥È¤·¤ä¤¹¤¯¤·¤Þ¤¹¡£¤½¤Î¥½¡¼¥¹¤ÎÊѹ¹¤ÏEclipse¤Ê¤É¤òÍѤ¤¤Æ¡¢¤­¤Ã¤Á¤ê¤ä¤ë¡¢¤È¡£¤ä¤ë¼ê½ç¤Ï

  • ¥Õ¥£¡¼¥ë¥É¤Ø¤Î¥¢¥¯¥»¥¹¤ògetter·Ðͳ¤Ë¤¹¤ë(getter¤Ï¥Ç¥Õ¥©¥ë¥È¤äprotected¤Ë¤¹¤ë)
  • ñÂΥƥ¹¥È»þ¡¢anonymous¥¯¥é¥¹¤Ë¤·¤Æ¡¢¤½¤Îgetter¤òoverride¤·¤Æ¡¢ÃͤòÊѹ¹¤¹¤ë

¶ñÂÎŪ¤Ë¤Ï¾å¤Î¥¯¥é¥¹¤Ï°Ê²¼¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£

  • ¥Õ¥£¡¼¥ë¥É¤Ø¤Î¥¢¥¯¥»¥¹¤ògetter·Ðͳ¤Ë¤¹¤ë(getter¤Ï¥Ç¥Õ¥©¥ë¥È¤äprotected¤Ë¤¹¤ë)
    public class Hoge{
      private String path ="hoge/hogehoge.properties";
      .....
      public void exe(){
        new File(getPath()).....;
      }
      
      String getPath(){
        return path;
      }
    }
  • ñÂΥƥ¹¥È»þ¡¢anonymous¥¯¥é¥¹¤Ë¤·¤Æ¡¢¤½¤Îgetter¤òoverride¤·¤Æ¡¢ÃͤòÊѹ¹¤¹¤ë
    public class HogeTest{
      private Hoge hoge;
      .....
      public void testExe(){
        hoge=new Hoge(){
          String getPath(){
            return "¿·¤·¤¤¥Ñ¥¹";
          }
        };
        hoge.exe();.......
      }
    }
    ¤³¤¦¤¹¤ë¤È¥Ñ¥¹¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£µ¤¤Ë¤Ê¤ë¤Î¤Ï
  • ¥Õ¥£¡¼¥ë¥É¤ò¸ø³«¤·¤Á¤ã¤Ã¤Æ¤ë(¥Ç¥Õ¥©¥ë¥È¤Ï¥Ñ¥Ã¥±¡¼¥¸Æâ¡¢protected¤Ï¤µ¤é¤Ë¥µ¥Ö¥¯¥é¥¹¤â)
  • ¥½¡¼¥¹¤òÊѹ¹¤·¤Æ¤¤¤ë
  • anonymous¤Î¥¯¥é¥¹¤ËÂФ¹¤ë¥Æ¥¹¥È¤¬¡¢¸µ¤Î¥¯¥é¥¹¤Î¥Æ¥¹¥È¤È¤·¤Á¤ã¤Ã¤Æ¤è¤¤¤Î¡©

¤Ã¤Æ¤È¤³¤í¤Ç¤¹¤Í¡£¡£¥½¡¼¥¹¤ÎÊѹ¹¤Ë´Ø¤·¤Æ¤ÏEclipse¤Ê¤É¤ÇÏÀÍýŪ¤Ë°ÂÁ´¤Ë¹Ô¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤¹¤¬¡£¼ê½ç¤Ï¡¢

ÊÑ¿ô¤ò»²¾È¤·¤Æ¤¤¤ë²Õ½ê(new File(path)¤Î"path")¤òÁªÂò¤·¤Æ¡¢¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥° >> ¥Õ¥£¡¼¥ë¥É¤Î¥«¥×¥»¥ë²½

Äê¿ô¤¬¥Õ¥£¡¼¥ë¥É¤Ë¤¹¤é¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¾å¤ÎÁ°¤Ë¤µ¤é¤Ë¤³¤ì¤ò¤ä¤ë

ÊÑ¿ô¤òÁªÂò¤·¤Æ¡¢ ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥° >> ¥í¡¼¥«¥ëÊÑ¿ô¤ò ¥Õ¥£¡¼¥ë¥É¤ËÊÑ´¹

¥×¥ì¡¼¥¹¥Û¥ë¥À¤ò»È¤¦

MessageFormat?¤ò»È¤¦¤È¡¢{0}¤Î¤è¤¦¤Ê¥×¥ì¡¼¥¹¥Û¥ë¥À¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

SimpleDateFormat yyyy = new SimpleDateFormat("yyyy");
SimpleDateFormat MM = new SimpleDateFormat("MM");
SimpleDateFormat dd = new SimpleDateFormat("dd");
Date selectedDate = new Date();
String year = yyyy.format(selectedDate);
String month = MM.format(selectedDate);
String date = dd.format(selectedDate);
Object[] dateArgs = { year, month, date };
MessageFormat form = new MessageFormat("{0}ǯ{1}·î{2}Æü"); <-¥×¥ì¡¼¥¹¥Û¥ë¥À
System.out.println(form.format(dateArgs));

¼Â¹Ô·ë²Ì¤Ï

2005ǯ03·î18Æü

e.printStackTrace?()¤Îʸ»úÎó¤ò¼èÆÀ¤¹¤ë¡¢½ÐÎÏÀè¤òÊѹ¹¤¹¤ë

Îã³°¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òex¤È¤·¤Æ

StringWriter stringWriter = new StringWriter();
ex.printStackTrace(new PrintWriter(stringWriter));
String message = stringWriter.getBuffer().toString();

WSAD5.1.2¤Ç¥µ¡¼¥Ð¤ÎÀßÄ꤬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê

${WORKSPACE}\.metadata\.plugins\com.ibm.wtp.server.core\configs

¥×¥í¥¯¥·Ç§¾Ú¤Ê¤É¤Ê¤É

-Dhttp.proxyHost=[¥×¥í¥¯¥·¥µ¡¼¥Ð̾] -Dhttp.proxyPort=[¥Ý¡¼¥ÈÈÖ¹æ]
-Dhttp.proxyUser=[UserID] -Dhttp.proxyPassword=[password]

private¤Ê¥Õ¥£¡¼¥ë¥É¤Ë¥¢¥¯¥»¥¹¤¹¤ë

¤¿¤È¤¨¤Ð¥¤¥ó¥¹¥¿¥ó¥¹Ì¾instance ¤Î¥Õ¥£¡¼¥ë¥É(String¤ÇÊÑ¿ô̾aField)¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Ë¤Ï

Class clazz = instance.getClass();
Field field = clazz.getDeclaredField("aField");
field.setAccessible(true);
String answer = (String)field.get(instance));

¤Ç¼èÆÀ¤Ç¤­¤ë¡£¤³¤³¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

<%@ page %> ¥¿¥°Æâ¤Î°ÕÌ£¡£

¤¿¤È¤¨¤Ð

<%@ page contentType=text/html; charset=EUC-JP" pageEncoding="Shift_JIS" %>

¤È¤·¤¿¾ì¹ç¡¢pageEncoding¤¬¥½¡¼¥¹¥³¡¼¥É¤Îʸ»ú¥³¡¼¥É¡¢contentType¤Ç»ØÄê¤Ç¤­¤ë¤Î¤¬½ÐÎÏʸ»ú¥³¡¼¥É¤Ç¤¹*4¡£¤³¤Î¾ì¹ç¤Ï¥½¡¼¥¹¤òShift_JIS¤Ç½ñ¤¤¤Æ¡¢EUC-JP¤Ç½ÐÎϤ¹¤ë¤Ã¤Æ¤³¤È¤Ç¤¹¤Í¡£

key=value&...¤Î·Á¼°¤Ç¤Ï¤Ê¤¤POST¥ê¥¯¥¨¥¹¥È¤ÎÅÅʸ¤ò¼èÆÀ¤¹¤ëÊýË¡

request¤«¤éReader¤ò¼èÆÀ¤·¤Æ¡¢¤½¤³¤«¤éʸ»ú¤ò¼èÆÀ¤¹¤ì¤Ð¤è¤¤¤ï¤±¤Ç¤¹¤Í¡£

BufferedReader reader = request.getReader();
StringBuffer buffer = new StringBuffer();
String line = null;
while ((line = reader.readLine()) != null) {
  buffer.append(URLDecoder.decode(line));
  buffer.append("\n");
}
String reqMsg = new String(buffer);

DOM2String

ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
  TransformerFactory tfactory = TransformerFactory.newInstance();
  Transformer transformer = tfactory.newTransformer();
  transformer.setOutputProperty("encoding", encoding);
  transformer.transform(new DOMSource(document), new StreamResult(out));
} catch (TransformerConfigurationException e) {
  logger_.error(e);
} catch (TransformerException e) {
  logger_.error(e);
}
return out.toString();

String2DOM

Îã³°½èÍý¤Ï¤È¤ê¤¢¤¨¤º¤ª¤¤¤È¤¤¤Æ

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
StringReader stringReader = new StringReader(str); <- str: xml¤Îʸ»úÎó
InputSource inputSource = new InputSource(stringReader);
return builder.parse(inputSource); <- Document

¥Õ¥¡¥¤¥ë½ñ¤­¤À¤·(¥Ð¥¤¥Ê¥ê¤Ç)

InputStream in = .....;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int j;
while ((j = in.read(b)) != -1)
    baos.write(b, 0, j);
byte[] pix = baos.toByteArray();
write("hoge.dat", pix);

private void write(String filename, byte[] b) {
    BufferedOutputStream stream = null;
    try {
        File file = new File(DictionariesPlugin.getDefault()
                .getStateLocation().toFile(), filename);
        FileOutputStream fstream = new FileOutputStream(file);
        stream = new BufferedOutputStream(fstream);
        stream.write(b);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (stream != null) {
            try {
                stream.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }

    }
}

¥Õ¥¡¥¤¥ë½ñ¤­¤À¤·(¥Æ¥­¥¹¥È)

public boolean write(String log) {
  BufferedWriter writer = null;
  try {
    //ÂèÆó°ú¿ô¤¬true¤Ê¤éÄɵ­¡¢false¤Ê¤é¾å½ñ¤­¡£
    writer = new BufferedWriter(new FileWriter("./log.txt", true));
    writer.write(log, 0, log.length());
    writer.newLine();
  } catch (FileNotFoundException e) {
    e.printStackTrace();
    return false;
  } catch (IOException e) {
    e.printStackTrace();
    return false;
  } finally {
    try {
      if (writer != null) {
        writer.flush();
        writer.close();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  return true;
}

¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤ò·×»»¤·¤Æ¡¢Â¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÏ¢·ë¤·¤¿¤¤¡£

¤¦¤Þ¤¯ÀâÌÀ¤Ç¤­¤Þ¤»¤ó¤¬¡¢Ê̤Υǥ£¥ì¥¯¥È¥ê¤ËƱ¤¸¥Ñ¥¹¹½À®¤ò¥³¥Ô¡¼¤·¤¿¤¤¤È¤­¤Ê¤É¤Ë»ÈÍѤǤ­¤ë¤È»×¤¤¤Þ¤¹¡£

 //¤¿¤È¤¨¤Ð "c:/temp", "c:/temp/fuga/aaaaa.txt", "d:/huge/hoho" ¤ËÂФ·¤Æ
 // d:/huge/hoho/fuga/aaaaa.txt ¤È¤·¤¿¤¤
 public static String trimAndConcat(String base, String path, String other) {
   URI uriBase = new File(base).toURI();
   URI uriPath = new File(path).toURI();
   URI uriRelativised = uriBase.relativize(uriPath);
   return new File(other, uriRelativised.toString()).getAbsolutePath();
 }

URL¤«¤é¥Õ¥¡¥¤¥ë¥Ñ¥¹¤Ø¡£

URL¥¯¥é¥¹¤«¤é¤½¤Î¥Õ¥¡¥¤¥ë¤Þ¤Ç¤Î¥Ñ¥¹¤ò¼èÆÀ¤¹¤ëÊýË¡¤Ç¤¹¡£

String path = new File(url.getPath()).getPath();

¤È¤ä¤ë¤³¤È¤Ç¡¢

URL : file:/C:/hoge/config/hoge.txt
File: C:\hoge\config\hoge.txt

¤ËÊÑ´¹¤¬¤Ç¤­¤Þ¤¹¡£*5*6

(¤¿¤È¤¨¤Ð)³ÈÄ¥»Ò¤¬xml¤Î¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¤¹¤ë

File mainDirectory = new File([¥Ç¥£¥ì¥¯¥È¥ê]);
String[] files = mainDirectory.list(new FilenameFilter() {
  public boolean accept(File dir, String name) {
    if (name.endsWith("xml")) {
      return true;
    }
    return false;
  }
});

files¤¬³ÈÄ¥»Ò¤¬xml¤Î¥Õ¥¡¥¤¥ë(¥Õ¥¡¥¤¥ë̾¡¢¤ÎÇÛÎó)

³ÈÄ¥»Ò¤è¤ê¸å¤í¤Îʸ»úÎó¤ò¼èÆÀ¤¹¤ë

String hoge="aaa.xml";
hoge.substring(hoge.lastIndexOf('.'));

¤Ç.xml¤¬¼èÆÀ¤Ç¤­¤ë¡£

³ÈÄ¥»Ò¤è¤êÁ°¤Îʸ»úÎó¤ò¼èÆÀ¤¹¤ë

String hoge="aaa.xml";
hoge.substring(0, hoge.indexOf('.'));

¤Çaaa¤¬¼èÆÀ¤Ç¤­¤ë¡£/etc/aaa.xml.bak¤È¤«¤Ë¤Ï»È¤¨¤Ê¤¤¤±¤É¡£¡£

Java¤«¤é¡¢WEB¥Ö¥é¥¦¥¶¤òµ¯Æ°(Windows¤Î¤ß)

try {
	Runtime.getRuntime().exec(
		new String[] {
			"rundll32.exe",
			"url.dll,FileProtocolHandler",
			"http://jp.sun.com/" });
} catch (IOException e) {
	e.printStackTrace();
}

SWT¤«¤éµ¯Æ°¤·¤¿¤¤Êý¤Ï ¤³¤Á¤é

WEB¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥ë¡¼¥È¤ò¼èÆÀ¤·¤Æ¥Ñ¥¹¤òÀ¸À®¤¹¤ë

String root_path = this.getServletContext().getRealPath("/");
String file_path = root_path + "hoge.dat"

DOM¥ª¥Ö¥¸¥§¥¯¥È¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹

try {
	TransformerFactory tfactory = TransformerFactory.newInstance();
	Transformer transformer = tfactory.newTransformer();
	//			transformer.setOutputProperty("encoding", "EUC-JP");
	transformer.transform(new DOMSource(document), <-document : XML¤ÎDOM¤Ç¤¹
	//new StreamResult(System.out)); <- ¤³¤Ã¤Á¤À¤È¥³¥ó¥½¡¼¥ë½ÐÎÏ
	new StreamResult(new FileOutputStream(new File(output))));

} catch (TransformerConfigurationException e) {
	e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
	e.printStackTrace();
} catch (TransformerException e) {
	e.printStackTrace();
} catch (FileNotFoundException e) {
	// TODO ¼«Æ°À¸À®¤µ¤ì¤¿ catch ¥Ö¥í¥Ã¥¯
	e.printStackTrace();
}

JSP¤äServlet¤ÎOut¤ËDOM¤ò½ñ¤­½Ð¤·¤¿¤¤¡£

public void write(HttpServletRequest request, HttpServletResponse response) {
	response.setContentType("text/xml; charset=UTF-8");
	try {
		PrintWriter out = response.getWriter();
		transformer.transform(new DOMSource(getDocument()),
		new StreamResult(out));
	} catch (IOException e) {
	} catch (TransformerException e) {
	}
}

Servlet¤Ç¡¢¥³¥ó¥Æ¥ó¥Ä¥¿¥¤¥×¤ò»ØÄꤹ¤ë¡£

response.setContentType("text/xml; charset=UTF-8");

¥×¥í¥­¥·±Û¤¨¤È¤«¡¢HttpConnection?

//¥×¥í¥­¥·Ç§¾Ú¤Îµ­½ÒÊýË¡
BASE64Encoder encoder = new BASE64Encoder();
urlConnection.setRequestProperty(
 "Proxy-Authorization",
 "Basic " + encoder.encode((userid + ":" + password).getBytes()));

java¤Î¼Â¹Ô

>java -classpath ".;lib;classes;lib\log4j-1.2.8.jar;swt.jar" kino.swt.JavaDocSearchForm
>java -classpath ".;lib;classes;lib\log4j-1.2.8.jar;swt.jar;lib\kino_javadocsearch.jar" 
 kino.swt.JavaDocSearchForm
>java -classpath "¥¯¥é¥¹¥Ñ¥¹(¥»¥ß¥³¥í¥ó¶èÀÚ¤ê)" ¥¯¥é¥¹

¤³¤Î¥µ¥¤¥È¤è¤¤¤«¤â¡£

Javadoc½ñ¤­Êý

@see	UserInformationManager#getUserInformation(String)

¤È¤¹¤ë¤È¡¢¥ê¥ó¥¯¤¬Ä¥¤é¤ì¤ë¡£

{@link	InformationController	InformationController}¤Î¥Õ¥¡¥¤¥ëÆÉ¤ß¹þ¤ß¤Î¼ÂÁõ¤Ç¤¹¡£

¤È¤«

{@link ¥¯¥é¥¹Ì¾#¥á¥ó¥Ð̾¡¡É½¼¨¥Æ¥­¥¹¥È}

¤Ê¤ó¤Æ»È¤¤Êý¤â¤Ç¤­¤ë

¥³¥ì¥¯¥·¥ç¥ó¤òÇÛÎó¤ËÊÑ´¹

type: ·¿
collection: ¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹
(type[]) collection.toArray(new type[collection.size()]);

ÇÛÎó¤ò¥³¥ì¥¯¥·¥ç¥ó¤ËÊÑ´¹

fileList: Object[]·¿
java.util.Arrays.asList(fileList);

¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à

BufferedReader reader = null;
try {
	reader = new BufferedReader(new FileReader(path));
	//¤â¤·¤¯¤Ï
	//new BufferedReader(
	//  new InputStreamReader(url.openStream(), "JISAutoDetect"));
  
	String line;
	while ((line = reader.readLine()) != null) {
		buffer.append(line);
		buffer.append("\n");
	}
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
} finally {
	if (reader != null) {
		try {
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		reader = null;
	}
}

Object¤Î¥·¥ê¥¢¥é¥¤¥º

try {
	//FileInputStream¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®
	FileInputStream inFile =
		new FileInputStream([serialize¤·¤¿¥Õ¥¡¥¤¥ë̾]);

	//ObjectInputStream¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À® 
	ObjectInputStream inObject = new ObjectInputStream(inFile);

	Object object = (¥¯¥é¥¹Ì¾) inObject.readObject();

	inObject.close(); //¥ª¥Ö¥¸¥§¥¯¥ÈÆþÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¯¥í¡¼¥º
	inFile.close(); //¥Õ¥¡¥¤¥ëÆþÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¯¥í¡¼¥º

	//FileOutputStream¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®
	FileOutputStream outFile =
		new FileOutputStream([½ñ¤­½Ð¤·¤¿¤¤¥Õ¥¡¥¤¥ë̾]);

	//ObjectOutputStream¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À® 
	ObjectOutputStream outObject = new ObjectOutputStream(outFile);

	//¥¯¥é¥¹Vector¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î½ñ¤­¹þ¤ß
	outObject.writeObject(object);

	outObject.close(); //¥ª¥Ö¥¸¥§¥¯¥È½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¯¥í¡¼¥º
	outFile.close(); //¥Õ¥¡¥¤¥ë½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Î¥¯¥í¡¼¥º

} catch (FileNotFoundException e) {
} catch (IOException e) {
} catch (ClassNotFoundException e) {
}

¥ª¥Ö¥¸¥§¥¯¥È¤¬ÇÛÎ󤫤ɤ¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë

String model = "hogehoge";
// String[] model = new String[] { "hogehoge", "hugahuga" };

List list = new ArrayList();
if (model.getClass().isArray()) {
    Object tmp = model;
    list = Arrays.asList((Object[]) tmp);
} else {
    list.add(model);
}
System.out.println(list);

¥¤¥ó¥Ê¥¯¥é¥¹¡¢ÌµÌ¾¥¯¥é¥¹

¥¤¥ó¥Ê¡¼¥¯¥é¥¹¡¦ÌµÌ¾¥¯¥é¥¹¤Ï¡¢¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥¢¥¯¥»¥¹²Äǽ¡¢¥í¡¼¥«¥ëÊÑ¿ô¤Ë¤ÏÉÔ²Äǽ¡£

final¤Ê¥Õ¥£¡¼¥ë¥É¤Î½é´ü²½

Àë¸À»þ¤Ë½é´ü²½¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤«¤È»×¤Ã¤Æ¤¿¤ó¤Ç¤¹¤¬¡¢¥³¥ó¥¹¥È¥é¥¯¥¿Æâ¤Ç¤â¤è¤¤¤ó¤Ç¤¹¤Í¡£ÃΤé¤Ê¤«¤Ã¤¿¡£


¤³¤Îµ­»ö¤Ï

ÁªÂò»è Åêɼ
¤ª¤â¤·¤í¤«¤Ã¤¿ 56  
¤½¤¦¤Ç¤â¤Ê¤¤ 10  
  • Ìò¤ËΩ¤Á¤Þ¤·¤¿¡£¡¡¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¢ª¥×¥ì¡¼¥¹¥Û¥ë¥À(place holder)¡© -- 2005-04-25 12:56:23 (·î)
  • ¤ªÃѤº¤«¤·¤¤¡£¤Ê¤ª¤·¤Þ¤·¤¿¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£ -- ¤­¤Î? 2005-04-25 16:39:01 (·î)
  • ¥Õ¥¡¥¤¥ë¡¡¥¢¥Ã¥×¥í¡¼¥É -- 2010-07-06 (²Ð) 14:14:42
  • ¤¤¤Ä¤â»²¹Í¤Ë¤·¤Æ¤Þ¤¹¡£ -- Ä̤ꤹ¤¬¤ê¤ÎSE? 2011-09-01 (ÌÚ) 22:34:41
  • ¥Ï¥Ã¥·¥å²½¤Î¥³¡¼¥É¤Ç¤¹¤¬¡¢md.digest()¤Î¸å¤Ë¡¢md.rest()¸Æ¤ó¤ÀÊý¤¬¤¤¤¤¤Ç¤¹¤Í¡£ -- Ä̤ꤹ¤¬¤ê¤ÎSE? 2011-09-01 (ÌÚ) 22:35:47

¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯
Top / Java / TIPS½¸

¸½ºß¤Î¥¢¥¯¥»¥¹:86269


*1 http://ja.wikipedia.org/wiki/Base64
*2 ¤Ê¤¼Ìá¤êÃͤ¬byte[]¤Ê¤Î¤«¤ÏÉÔÌÀ
*3 http://ja.wikipedia.org/wiki/SHA
*4 JSP1.1¤Î¾ì¹ç¤Ï¡¢pageEncoding ¤¬»È¤¨¤Ê¤¤¤Î¤Ç¡¢¥Ú¡¼¥¸¤Îʸ»ú¥³¡¼¥É¤È½ÐÎÏʸ»ú¥³¡¼¥É¤ÏƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
*5 URL¥¯¥é¥¹¤ò¤½¤Î¤Þ¤ÞtoString¤¹¤ë¤È¡¢¤è¤±¤¤¤Êʸ»ú(file)¤¬¤Ä¤¤¤Á¤ã¤¦¤ó¤Ç¤¹¤è¤Í¡£
*6 ¥¹¥Ú¡¼¥¹¤Ê¤É¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Î¤¿¤á¤Ë¡¢URLDecoder#decode¤ò¤«¤±¤Í¤Ð¤Ã

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2012-04-28 (ÅÚ) 17:48:31 (21d)