http://java.sun.com/ 에서 jdk7을 http://netbeans.org/ 에서 netbeans7을 구할 수 있습니다.


JDK 경로는 Program Files 에서 java로 변경합니다. 폴더명에 공백이 들어가지 않게 하기 위해서입니다.  


JRE는 그냥 기본 위치에 설치합니다.


이제 NetBeans를 설치합니다. http://netbeans.org/ 로 접속하면 됩니다.


NetBeans도 java 디렉토리로 설치합니다.


1.395.1 버전의 plugin management에서 이런 화면이 나옵니다.

 
씁쓸합니다. 오라클 너무 하는 것 아닌가요.

Update Site도 변했습니다.


 
사이트도 http://jenkins-ci.org/ 와 예전 http://hudson-ci.org/ 입니다.


 
 
2000년 12월 5일 dreamwiz 계정으로 시작하고 2001년 3월 22일 okjsp.pe.kr 도메인을 등록해서 지금까지 운영되고 있습니다. 10주년 기념 세미나를 통해서 지난 시간의 에피소드들과 요즘 개발 트렌드 그리고 앞으로의 계획 등을 나누려고 합니다. OKJSP는 계속 개발자들의 상담소, 쉼터, 정보 공유 놀이터 역할을 언제나 그 자리에서 똑같은 모습으로 있으려고 합니다. 10주년을 기념하는 자리에 함께 해주시길 바랍니다.


겹치는 class 있는 경우


[2011-01-23 16:25:48 - maps]: Dx
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/uaxgel/realestate/xmlrpc/XMLRPCMethodCallback;
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main.processClass(Main.java:338)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main.processFileBytes(Main.java:315)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main.access$100(Main.java:56)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:266)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main.processOne(Main.java:284)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main.processAllFiles(Main.java:220)
[2011-01-23 16:25:48 - maps]: Dx at com.android.dx.command.dexer.Main.run(Main.java:176)
[2011-01-23 16:25:48 - maps]: Dx at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source)
[2011-01-23 16:25:48 - maps]: Dx at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[2011-01-23 16:25:48 - maps]: Dx at java.lang.reflect.Method.invoke(Method.java:597)
[2011-01-23 16:25:48 - maps]: Dx at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(Unknown Source)
[2011-01-23 16:25:48 - maps]: Dx at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(Unknown Source)
[2011-01-23 16:25:48 - maps]: Dx at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(Unknown Source)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:344)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.ui.actions.GlobalBuildAction$1.run(GlobalBuildAction.java:179)
[2011-01-23 16:25:48 - maps]: Dx at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
[2011-01-23 16:25:48 - maps]: Dx1 error; aborting
[2011-01-23 16:25:48 - maps] Conversion to Dalvik format failed with error 1

이클립스의 작업관리 도구인 Mylyn에서 유료로 플러그인을 제공하는 Tasktop의 대표와의 인터뷰입니다. Mylyn을 통해서 어떻게 애자일 개발을 할 것인지에 대한 내용입니다.
http://www.infoq.com/interviews/kersten-tasktop 

mp3도 제공이 되는군요.
MP3 
infoq 로그인 필요합니다.

http://www.okjsp.pe.kr:8080/ 허드슨을 이용해서 사이트를 관리를 하고 있습니다. SVN에 소스를 커밋하면 1시간마다 또는 즉시 운영에 반영할 수 있는 시스템이고, 1시간마다 테스트케이스를 돌리기 때문에 언제 문제가 발생했는지 모니터링할 수 있는 지속적인 통합(Continuous Integration) 도구입니다.
관련해서 포스팅한 글도 조금 있지요. http://okjsp.tistory.com/tag/hudson

오늘 RSS를 통해서 본 것인데, 충격적이라 포스팅합니다.

허드슨은 http://hudson.dev.java.net 에서 오픈소스로 진화하고 있었는데, 이게 java.net을 떠나서 github로 둥지를 바꿨다고 합니다. http://www.infoq.com/news/2011/01/hudson-jenkins 
위 글에 따르면 oracle 관리 아래 java가 들어간 이후로 java.net의 대대적인 개편이 있었고, 이게 서비스를 마이너스로 만들었다고 합니다. 그래서 Github로 이전했다네요.

예전엔 http://hudson-ci.org/ 와 화면이 같았었습니다.


Oracle had applied for the Hudson trademark on October 29th, when the developers were in progress of moving the code off to GitHub.

from: http://www.infoq.com/news/2011/01/hudson-jenkins 
프로젝트 이름을 바꾸는 이유는 오라클이 Hudson으로 상표를 만들고 있는 것 같습니다. 으악~ 이거 뭐... 영어사전의 모든 단어로 상표권을 만들 기세입니다.

이름을 바꾸지 않고도 잘 해결되었으면 좋겠습니다. 혼동이 가중되지 않도록 말이죠.
개인적인 심정으로는 그냥 IBM이 Sun을 가져갔으면 더 발전적이지 않았을까 생각됩니다.

오라클은 나중에 영화나 미드 시리즈를 만들어도 흥행할 것 같습니다. 드라마를 쓰고 있네요. 파란만장 자바 이야기.

허드슨의 건승을 기원합니다.
apk 파일을 좀 더 보기 쉽게 해제하고 java파일은 자바 문법이 아닌 형태로 디컴파일됩니다.
Reverse Engineering 도구인데, 논란이 있지만, Activity가 High인 것을 보면 굉장히 많이 사용되는 것 같습니다.



모바일 사파리는 풀스크린 모드로 모바일 웹을 실행시키는 것이 가능하다. 
...
<meta name="apple-mobile-web-app-capable" content="yes" />
...
이 기능을 활용하여 웨 어플리케이션을 네이티브 어플리케이션과 같은 환경을 만들 수 있지만, 그것은 신중하게 사용하여야 한다. 브라우저 크롬의 손실이 없다는 것은 뒤로 가기, 앞으로 가기 컨트롤을 할 수 없다는 것을 의미한다.
from: 모바일 디자인 & 개발, 279p

상태바 표시 변경
<meta name="apple-mobile-web-app-status-bar-style" content="black" />

아이콘 더하기
<link rel="apple-touch-icon" href="images/apple-touch-icon.png" />
57x57 : iphone 3gs

방금 받은 메일의 내용이 인상적이라 공유합니다. IBM(International Business Machine, 이미 버린 몸)에서 운영하는 developerWorks (개발자는 일한다 또는 개발자 일감; 요따구로 번역하면 뭐라 하겠죠.)사이트의 2010년 기사 순위가 나왔습니다.

Top 10 developerWorks URLs for 2010: 

  1. Lazy Linux: 10 essential tricks for admins
  2. WebSphere Developer Technical Journal
  3. Introduction to Android development Using Eclipse and Android widgets
  4. Create modern Web sites using HTML5 and CSS3
  5. On-demand skills session: An introduction to XML
  6. 5 things you didn't know about ... everyday Java tools
  7. Build a dynamic organization tree using GWT and RESTful web services
  8. 5 things you didn't know about ... Command-line flags for the JVM
  9. Build skills for DB2 for Linux, UNIX, and Windows
  10. Build dynamic user interfaces with Android and XML

자바 관련된 것이 5개 있다고 내용에 나오는데, AIX와 IBM 장비 때문인지 Linux관련 글이 1위입니다. 안드로이드 관련 글도 두 가지가 보입니다. 아무도 가르쳐 주지 않는 5가지 자바 도구들 제목도 끌립니다.

온고이지신이라는 말처럼 2011년의 기술트렌드를 살피는데 2010년의 자료는 좋은 방향성을 제시할 것이라 생각됩니다.

으악 DB에 한글이 안들어가요.

Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xEB\xB0\xB1\xEA\xB8\xB0...' for column 'name' at row 1

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2046)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949)

at springbook.user.dao.UserDao.add(UserDao.java:23)

at springbook.user.dao.UserDao.main(UserDao.java:60)



mysql> SHOW VARIABLES LIKE '%olla%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> 

Class.forName("com.mysql.jdbc.Driver");

Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook?characterEncoding=UTF-8", "spring","book");


방법을 찾았습니다만, 쉽지 않은 문제였습니다. DB에 대한 이해가 필수겠지요. varchar(20)을 longtext  로 잡았습니다.

create table users (

id varchar(10) primary key,

name longtext not null,

password varchar(10) not null

) DEFAULT CHARSET=utf8;



현재 DB 설정과 내용은 다음과 같습니다.
kenuheoyimacbookpro-4:bin kenu$ ./mysql -u spring -p springbook
Enter password: 
...
Server version: 5.5.8 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
...
mysql> show variables like '%olla%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> select * from users;
+-----------+-----------+----------+
| id        | name      | password |
+-----------+-----------+----------+
| whiteship | 백기선    | married  |
+-----------+-----------+----------+
1 row in set (0.00 sec)

mysql> 



+ Recent posts