지금도 진행중이지만, 발생할수 있는 경우의 수를 계산할일이 생겼는데, 

이제는 산수도 헷갈리는 문제가 발생하였습니다. 


경우의 수를 쉽게 구하는 방법이 있습니다.(예를들면 M이라는 갯수가 있을때 N개씩 뽑을대 발생할수 있는 McN) 경우의 수,, 표현식이 맞는지 잘모르겠지만..


예전에 울프럼알파? 수학용 검색엔진이 있다고 언듯들은적 있는데, 바로 계산해주네요 




그리고 만약 자바에서 할경우에는, 하마타면 로직을 만들뻔 했지만 combinatoricslib 라이브러리가 존재,

https://code.google.com/p/combinatoricslib


            <dependency>

<groupId>com.googlecode.combinatoricslib</groupId>

<artifactId>combinatoricslib</artifactId>

<version>2.0</version>

</dependency>



홈페이지에는 참고할만한 내용이 없을 정도로 라이브러리 자체가 심플하게 구성되어 있네요 \

 // Create the initial vector of (apple, orange)
   
ICombinatoricsVector<String> initialVector = Factory.createVector(
     
new String[] { "apple", "orange" } );

   
// Create a multi-combination generator to generate 3-combinations of
   
// the initial vector
   
Generator<String> gen = Factory.createMultiCombinationGenerator(initialVector, 3);

   
// Print all possible combinations
   
for (ICombinatoricsVector<String> combination : gen) {
     
System.out.println(combination);
   
}

  

저작자 표시 비영리 변경 금지
신고

Reference

http://jeromejaglale.com/doc/spring4_tutorial


백엔드 쪽 작업에 익숙해서, 프론트쪽에 대한 제대로 된 지식이 없어 Spring MVC 4.0 공부하는데 무슨 소리인지 통 감이 안오더군요. 찾아보니 쉽게 설명해논 블로그가 있어서 링크를 겁니다. 

저작자 표시 비영리 변경 금지
신고

http://jsonlint.com/


JSON 정렬, 유효성 검사

저작자 표시 비영리 변경 금지
신고

최근에 학교에서 이런저런것을 진행하면서 자바로 무엇인가 만들때는, 쌩으로 짜지 않고 최대한 라이브러리를 이용하려고 하고 있습니다.(일딴 검증되었으니까,.?,, 제가 짜면 괜히 느려질것 같은 그런 문제점도..) 


물론 JVM위에서 돌아가기때문에 C언어 같은 네이티브에 가까운 속도의 문제를 기대하는건 아니지만. (사실은 어떻게 하다보니.. 자바를 쓰다보니까.. 익숙해져서요..)


보통의 자바책의 맨 뒷장(예를 들어 학교 학부과정에서 쓸만한 책들,, 정말 래퍼런스 책말고..)에 보면 보통 가장 많이 나오는것중 하나가 MySQL을 이용한 프로그램 예제들입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.sql.*;
 
public class MyDBHelper {
 
 public static void main(String[] args) {
  
  Connection conn;
  Statement stmt;
  
  try {
   Class.forName("com.mysql.jdbc.Driver");
  }catch(ClassNotFoundException e) {
   System.err.print("ClassNotFoundException: ");
  }
  
  try {
   String jdbcaAddress = "jdbc:mysql://localhost:3306/mydb";l
   String id = "user";
   String pass = "userpasswd";
   
   conn = DriverManager.getConnection(jdbcUrl, Id, pass)
   
   stmt = conn.createStatement();   
   
   
   stmt.close();

   conn.close();
  }catch(SQLException e) {
   System.out.println("SQLException: " + e.getMessage());
  } 
 }
}


흔히 말하면, 이런식의 예제였죠... 그런데 요즘 이런저런것을 찾다가 Apache Commons 라는것을 알게되었습니다. 여기서 DButils라는 패키지를 제공하는데 https://commons.apache.org/proper/commons-dbutils/

한예로 들면 이곳에서 제공하는 DButils를 이용하면 다음과 같아집니다 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public MysqlHelper(String url, String user, String passwd) {
 
        String driver = "com.mysql.jdbc.Driver";
 
        if (!DbUtils.loadDriver(driver)) {
 
            logger.fatal("Failed Loading JDBC Driver!");
            System.exit(1);
 
        }
 
        try {
            connection = DriverManager.getConnection(url, user, passwd);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
    }


DButils로 DB를 연결하면 이런식의 모양이 나옵니다. 별로 자바책에서 나오는 예제하고 달라지는건 없습니다. Dbutils라는것이 연결된것 빼고는.  약간 미리 적어놓자면, 보통의 자바책이라는곳에서 DB에 Query를 날리기 위해서 String 을 이용해서 SQL를 만드는 약간의 노가다 작업이 있었는데, 이게 DButils를 이용하면 생각보다 쉽게 해결됩니다. 그 다음 포스트에서 DButils를 이용한 Select, Insert, Update 예제를 올려보도록 하겠습니다. 


저작자 표시 비영리 변경 금지
신고

흔히 자바책에서 말하길, 자바는 JVM에서 동작하기 때문에 한번 컴파일 하면 모든 OS에서 돌아간다는 것입니다. 


지금 어떤걸 간단히 만들다가 약간의 고민에 빠졌습니다.


예를들어 윈도우에서 파일을 다루면 C:\\data\\file.jpg 이런식으로 File f = new File("C:\\data\\file.jpg");

이런식으로 해야되는데 리눅스에서는 윈도우하는 달리 / 이렇게 간다는 차이점이 있습니다.


그래서 처음에는 System.getProperty("os.name"); 해서 OS 이름을 뽑아내서, 각 OS별로 맞추어야 했는데.

제가 바보였습니다.

File.separator를 사용하면 되는거였습니다. 


쉽게  File f = new File("C:\\data\\file.jpg"); 

이런상황에서는 File f = new File("C:"+File.separator+"data"+File.separator+"file.jpg"); 이러면 되네요


저작자 표시 비영리 변경 금지
신고

일단, 자료를 저장하기 위해, Class A라는것을 만들었습니다.

자료를 담아야할 그릇이 있어서. 지금 이걸 bytearray로 이용해서 다른쪽 컴터로 보낸다음 거기서 열어봐야되는데.

분명 예전에 배울때, serialize 하고 했던것 같아서 보고 있었는데,  제 생각에는 소스가 길었던걸로 생각했는데, 딱 두줄이네요


자바 내에서도 기본적인 기능이 있지만. 




역시나 구글신

https://stackoverflow.com/questions/2836646/java-serializable-object-to-byte-array


The best way to do it is to use ApacheUtils:

To Serialize:

byte[] data = SerializationUtils.serialize(yourObject);

deserialize:

YourObject yourObject = (YourObject) SerializationUtils.deserialize(byte[] data)

Regards

사랑해요 스택 오버플로 ㅠㅠㅠㅠ 아파치 라이브러리를 이용하면 딱두줄이면 되네요. 필요하신분은 라이브러리를 받으시면 되겠지만 Maven을 이용하시면


                <dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.3.2</version>

</dependency>


아래 내용을 입력해주시면 됩니다. 


참고로. 만약 내가 Class A라는 것을 사용해서 사용하는데 이걸 그냥 bytearray로 변환시키면 Cast 오류가 납니다.


반드시, public class A implements Serializable 사용하시려는 클래스에다가 Serializable 을 implements 하하셔서 사용해야합니다. 




저작자 표시 비영리 변경 금지
신고

 이것저것을 하다가 이클립스에 메이븐을 이용해서 톰켓에 Deploy하던중 생긴 문제입니다. 


Source: http://fanshuyao.iteye.com/blog/1688314


중국어는 못하지만, 영어로 Thank you 라고 남겨놓고 싶었으나, 답글도 어떻게 다는지 모르겠네요 


답은 간단합니다. 


<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
    
    <Loader delegate="true" /> 
     

</Context>




저작자 표시 비영리 변경 금지
신고


저작자 표시 비영리 변경 금지
신고

자바 버전이 맞지 않아서 생기는 문제입니다.


예를 들어 오라클 자바 1.7 에서 컴파일 하였는데 실행환경이 1.6일경우 등등





저작자 표시 비영리 변경 금지
신고

http://www.eclipse.org/windowbuilder/download.php



자동으로 만들어줘서 좋긴한데..  Swing 하도 안건들다보니까 무슨말인지를 모르겠네 ..


저작자 표시 비영리 변경 금지
신고


HttpClinet 로 Get, Post(웹 상에서는 Post예제가 많으시더군요).를 이용해서 값을 리턴 받았을때 한글이 꺠지는 문제입니다. 


response = client.execute(request);

bufferedReader = new BufferedReader(new InputStreamReader(response

.getEntity().getContent(),"UTF-8"));


읽어드리는 부분에서, 서버의 인코딩에 맞추시면 됩니다. Euc-kr, UTF-8.



저작자 표시 비영리 변경 금지
신고

진짜 구글에 없는게 없네요 ...



Solution is here: http://forums.sun.com/thread.jspa?threadID=5368614&tstart=1
First rename the .bin file to .zip
Then with any tool, decompress the zip. It gives a comment that the beginning of the file has bytes that are not part of the zip (this is the script), but it decompress it correctly. It places the file in its subdirectory.
Then rename the file again to .bin, and execute it. It works!

EDIT: This is the real solution:
https://bugs.edge.launchpad.net/ubuntu/+bug/104511

1 - Erase any jmf.bin file that you had download. Download a new one and put in a folder, and check file size:

ls -l

This is a probably result:
-rwxr-xr-x 1 nobody nogroup 2419679 2009-03-07 11:52 jmf-2_1_1e-linux-i586.bin

filezise: 2419679 bytes

2 - Give permission to file:
chmod +x jmf-2_1_1e-linux-i586.bin

THIS IS THE MOST IMPORTANT STEP
3 - Edit jmf-2_1_1e-linux-i586.bin downloaded file with vim as root
vim -b jmf-2_1_1e-linux-i586.bin (YOU HAVE TO USE THIS COMMAND -b BECAUSE IT'S A BINARY FILE)

4 - At vim type this:
/tailPress ENTER.

Then press the key l to move to the left on that line, until the sign +.

Press i to insert text, and insert -n , with a space. Press ENTER.

The new line should be like this:
tail -n +309 $0 > $outname
5 - Now press ESC and type:
:wqPress ENTER.
6 - Now execute the jmf bin file.

That's it.

저작자 표시 비영리 변경 금지
신고

당분간 안드로이드에 빠져야 되서..



어휴 안드로이드 예전에 깔짝 손대고서 다시 하려고 하니 모가 몬지 이것참


Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!


=> Android SDK manager 실행 tool 삭제, 그리고 tool 재설치


저작자 표시 비영리 변경 금지
신고

만약 지금 Java를 이용해서 sqlite를 사용중이시고 데이터를 insert 중이신데 속도가 느리다

그런데 웹을 검색해보면 트랜잭션 하는데, 전부다 안드로이드 이야기 이다.


그러시다면 제가 포스팅한 주제를 제대로 찾아오셨습니다.

안드로이드에서 sqlite 쪽 보시면 명시적 트랜잭션 ? 이라든지 등등 많은데 자바에서는 이렇게 표현하시면 되실듯 하십니다.(제가 이것때문에 아주 어휴)


Connection sqlite_conn = DriverManager.getConnection("jdbc:sqlite:test.db");


sqlite_conn.setAutoCommit(false);

분기문[이곳에 insert문]

sqlite_conn.setAutoCommit(true);


저작자 표시 비영리 변경 금지
신고



지금 모좀 하는데, 자바 공부할때마다 대학교에서부터 궁금했던건데


학교에서 배운건 싱크로나이즈 동기화 밖에 안배웠습니다.


물론  전역 변수를 선언해버리고서 해결하는 방법이 있습니다.(예전에 과제할때 이 방법을 많이 사용했습니다.)

(근데 이건 이렇게 하는게 아니라고 안좋다고 들었습니다.)


그런데 이렇게 안하고도 공식적인 방법으로 더 할수 있는 방법이 있습니다.


물론 여기에는 소스는 안올려놓고, 두개의 포스트를 추천 드리겠습니다. 


http://javacan.tistory.com/64


파이프를 사용해서 쓰레드간 통신 하는 방법 입니다. 파이프를 처음 사용하시는 분들은 API를 꼭 참고 하시기 바랍니다.

제가 여기서 많이 이상한짓을 많이해서


제가 지금 정확히는 기억안나는데 파이프로 전송할수 있는 범위는 0~255 만약 스트링이면, 캐릭터로 잘라서 전송하던지 해야할것 같습니다.

물론 다른방법도 있을것 같지만 그런부분에 대해서는 지식이 적어서


다른 한방법법은 블록킹큐를 이용하는 방법입니다.


http://devyongsik.tistory.com/430


지금 저도 필요한 작업을 하다가 사용하는 중이라 나중에 제대로 알고 나면 이부분에 대해서 소스를 첨부하던지 해서 보기 편한방법으로 다시 올려보겠습니다. 

저작자 표시 비영리 변경 금지
신고



이클립스 설치하고 maven 설치하고 


가장 큰 문제가 저는 메이븐을 사용이 이번이 처음이거든요 ..


필요한 라이브러리는 직접 구해서 집어넣었는데, 메이븐 같은 방법이 


netty가 필요해서 집어넣었는데 저런식으로 오류가 나네요..


거의 2~3? , 허비한것 같은데. 답은 공식 홈페이지에 나오네요 ..


그냥 메이븐에서 추가하면 pom.xml에서 아래부분이 다릅니다. 저렇게 고치면 오류가 안나네요 

Downloading from Maven 2 repository

First off, add the following repository section to your pom.xml or ~/.m2/settings.xml:

1
2
3
4
5
6
7
8
9
10
11
<repositories>
  ...
  <repository>
    <id>repository.jboss.org</id>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
  ...
</repositories>

And then add the following dependency section to your pom.xml:

1
2
3
4
5
6
7
8
9
10
<dependencies>
  ...
  <dependency>
    <groupId>org.jboss.netty</groupId>
    <artifactId>netty</artifactId>
    <version>X.Y.Z.Q</version>
    <scope>compile</scope>
  </dependency>
  ...
</dependencies>


저작자 표시 비영리 변경 금지
신고


1. 자바 디자인 패턴 1 – Iterator

 

2. 자바 디자인 패턴 2 – Adapter

 

3. 자바 디자인 패턴 3 - Factory Method

 

4. 자바 디자인 패턴 4 - Template Method

 

5. 자바 디자인 패턴 5 – Singleton

 

6. 자바 디자인 패턴 6 – Strategy

 

7. 자바 디자인 패턴 7 – Composite

 

8. 자바 디자인 패턴 8 – Decorator

 

9. 자바 디자인 패턴 9 - Chain of Responsibility

 

10. 자바 디자인 패턴 10 – Facade

 

11. 자바 디자인 패턴 11 – Observer

 

12. 자바 디자인 패턴 12 – Prototype

 

13. 자바 디자인 패턴 13 – Flyweight

 

14. 자바 디자인 패턴 14 – Builder

 

15. 자바 디자인 패턴 15 – Mediator

 

16. 자바 디자인 패턴 16 – Visitor


출처 : http://iilii.egloos.com

저작자 표시 비영리 변경 금지
신고
일단

통신을 해야하는 상황이 있어서,


서버용 프로그램을 하나 만들고 클라이언트용 프로그램을 하나 만들었습니다.

언어는 자바고요


서버 프로그램은 리눅스 상에서 돌아갑니다.

분명 로컬상에서는 잘되는데, 서버로 옮기니까 .

java.net.ConnectException: Connection timed out: connect 


오류 나오네요.. 순간 멍.


아참... netstat -ntlp 했는데 포트가 열려있는것은 확인했는데.


! solution : 방화벽 확인해보세요..!!1



저작자 표시 비영리 변경 금지
신고

BufferedReader와 Scanner는 기본적인 기능은 같죠.. 파일이나 키보드로 정보를 입력받을수 있다는..

하지만 가지고 있는 기능은 Scanner가 훨씬 많죠..

BufferedReader의 경우 파일이나 키보드로 입력받은 정보는 read 혹은 readLine로 읽어올수 있습니다.

read는 읽어온 값을 int로 readLine은 String으로 반환하죠..

Reader에서 없는 readLine이 있어 한라인을 전부 읽어올수 있는건 편하지만 입력된 정보가 int든 double이든 상관없이 무조건 String으로 입력을 받죠..

Scanner는 JDK1.5에서 추가된 클래스로 기본적인 BufferedReader을 가지고 있으면서 그외에 여러 편리한 기능을 가지고 있죠..

예를 들어 패턴을 지정해서 지정된 패턴의 값만을 읽어 올수도 있으며 int. dobule등의 형으로 읽어올수도 있습니다.

API에 있는 몇개의 메소드를 보죠..

hasNextInt(), hasNextDouble()와 같은 형식의 메소드들은 읽어올 값이 무슨형인지 체크할수 있습니다.

nextInt(), nextLong()와 같은 형식의 메소드들은 읽어들이는 값을 String이 아닌 형식으로 자동으로 변환해줍니다.

next(Pattern pattern)같은 경우는 설정된 패턴과 일치하는 데이터를 검색해서 가져올수도 있습니다.

이렇듯 BufferedReader에 비해 Scanner는 강력한 여러 기능들이 추가된 클래스입니다.

JDK의 버젼이 조금더 올라가면 BufferedReader가 비추천이 되고 Scanner로 바뀔지도 모르겠네요.. ^^

Scanner에는 위에서 설명한 메소드이외에도 사용할만한 메소드가 많으니 한번쯤 API를 보는것도 나쁘지 않을꺼 같네요..

원문  : http://down.file.naver.com/howpc/kin.nhn?m=read&section=read&docid=9630935&page=493


저작자 표시 비영리 변경 금지
신고

'Study > --Java' 카테고리의 다른 글

missing artifact org.jboss.netty  (0) 2012.07.12
java 디자인 패턴  (0) 2012.07.06
java.net.ConnectException: Connection timed out: connect  (0) 2012.04.03
BufferedReader vs Scanner  (0) 2011.09.12
Failed to create the java virtual machine  (0) 2011.09.12
java sqlite jdbc eclipse build path  (0) 2011.07.14
Java sqlite jdbc  (0) 2011.07.14
Coffee Break
Coffee Break by bitzcelt 저작자 표시비영리변경 금지

이클립스 실행시 Failed to create the java virtual machine

이런 메세지가 나온다면 ,

이클립스 폴더안에  물론 JDK는 제대로 설치가 되어있는다는 가정하에 .
eclipse.ini을 열어서

openFile
--launcher.XXMaxPermSize
128M
--launcher.XXMaxPermSize
128m


이부분이 256으로 되어있을텐데 128로 바꾸어보세요, 웹상의 말로는 vm 을 못찾는것보다는 메모리의 문제가 되서 그렇다고 하네요

남은 명절 즐겁게 보내세요.
저작자 표시 비영리 변경 금지
신고

'Study > --Java' 카테고리의 다른 글

java 디자인 패턴  (0) 2012.07.06
java.net.ConnectException: Connection timed out: connect  (0) 2012.04.03
BufferedReader vs Scanner  (0) 2011.09.12
Failed to create the java virtual machine  (0) 2011.09.12
java sqlite jdbc eclipse build path  (0) 2011.07.14
Java sqlite jdbc  (0) 2011.07.14
[JAVA] atoi, iota  (5) 2011.07.07

Tree in mist
Tree in mist by Per Ola Wiberg ~ Powi 저작자 표시


2011/07/14 - [Study/Java] - Java sqlite jdbc

 


jdbc 드라이버를 받은다음 , 해당 eclipase 프로젝트 위에서  오른쪽 마우스 -> Properties -> Java Build Path -> Libraries -> Add Extenal JARS...
저작자 표시 비영리 변경 금지
신고

'Study > --Java' 카테고리의 다른 글

java.net.ConnectException: Connection timed out: connect  (0) 2012.04.03
BufferedReader vs Scanner  (0) 2011.09.12
Failed to create the java virtual machine  (0) 2011.09.12
java sqlite jdbc eclipse build path  (0) 2011.07.14
Java sqlite jdbc  (0) 2011.07.14
[JAVA] atoi, iota  (5) 2011.07.07
Flex 와 Java XMLsocket을 사용하기  (0) 2010.08.19

SqliteJDBC

SQLiteJDBC is a Java JDBC driver for SQLite. It runs using either a native code library 100% Pure Java driver based on NestedVM emulation.

Both the pure driver and the native binaries for Windows, Mac OS X, and Linux x86 have been combined into a single jar file.

Download

The current version is v056, based on SQLite 3.6.14.2.

That should be everything you need.

News

  • 2009-12-03: There will be a new version soon, just dealing with some test suite issues. I created anew mailing list, though the Google Group has mysteriously reappeared since then.
  • 2009-06-09: Upgrade to SQLite 3.6.14.2 and add a 64-bit binary for OS X.
  • 2009-01-14: Note that the mailing list for SQLite JDBC is currently unavailable as the Google Group unexpectedly disappeared.

Getting Started

Read the usage page for the full story.

import java.sql.*;

public class Test {
  public static void main(String[] args) throws Exception {
    Class.forName("org.sqlite.JDBC");
    Connection conn =
      DriverManager.getConnection("jdbc:sqlite:test.db");
    Statement stat = conn.createStatement();
    stat.executeUpdate("drop table if exists people;");
    stat.executeUpdate("create table people (name, occupation);");
    PreparedStatement prep = conn.prepareStatement(
      "insert into people values (?, ?);");

    prep.setString(1, "Gandhi");
    prep.setString(2, "politics");
    prep.addBatch();
    prep.setString(1, "Turing");
    prep.setString(2, "computers");
    prep.addBatch();
    prep.setString(1, "Wittgenstein");
    prep.setString(2, "smartypants");
    prep.addBatch();

    conn.setAutoCommit(false);
    prep.executeBatch();
    conn.setAutoCommit(true);

    ResultSet rs = stat.executeQuery("select * from people;");
    while (rs.next()) {
      System.out.println("name = " + rs.getString("name"));
      System.out.println("job = " + rs.getString("occupation"));
    }
    rs.close();
    conn.close();
  }
}

Run with:

java -cp .:sqlitejdbc-v056.jar Test

There are also some details on date handling and custom functions.

Keeping Informed

To be informed when a new release is made, I recommend subscribing to the freshmeat project for this driver. Every release I make goes up there immediately with a short summary of the changes. They provide a free email service with these details and don't load you up with spam.

There's a mailing list.

Released under a BSD license.

Version control for this project is handled with git. Get the source from github.

http://www.zentus.com/sqlitejdbc/ 

저작자 표시 비영리 변경 금지
신고

'Study > --Java' 카테고리의 다른 글

BufferedReader vs Scanner  (0) 2011.09.12
Failed to create the java virtual machine  (0) 2011.09.12
java sqlite jdbc eclipse build path  (0) 2011.07.14
Java sqlite jdbc  (0) 2011.07.14
[JAVA] atoi, iota  (5) 2011.07.07
Flex 와 Java XMLsocket을 사용하기  (0) 2010.08.19
java.net.BindException: Address already in use  (0) 2010.08.19


Java
Integer.parseInt()
Integer.toString()


왜 아직도 객체지향적인 사고가 안되지 ㅠㅠ

저작자 표시 비영리 변경 금지
신고
  1. Favicon of http://cherryboy.tistory.com BlogIcon 체리보이 2011.07.08 15:53 신고

    객체지향적인 사고, 어려울 것 같아요~

    • Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2011.07.09 15:39 신고

      아무리 제 전공이라고 하지만 책 두께가 줄어들지가 않네요 ㅎㅎ 즐거운 주말되세요

  2. Favicon of http://navisphere.net BlogIcon 룬룬 2011.07.20 16:39 신고

    웃고갑니다. ㅎㅎ


Wind socket below Iceland's Eyjafjoell volcano ash plume. South bound wind push ash cloud toward european skies, on May 08, 2010. Photo by Etienne de Malglaive/ABACAPRESS.COM Photo via Newscom


이번에 Flex하고 Java 연결시키는 작업때문에 하지도 않았던 자바 보느라 플랙스 보느라 정책적인 문제 해결하느라 머리가 완전히 스팀이 올랐다고 해야되나. 물론 여기에 제 프로그래밍 기술적인 부분을 올려놓으면 좋겠지만 완전 난잡한 코드에 거의 다른 분들 소스를 참고한데다가 , 또 완벽히 설명할 자신이 없기에 소스 올려놓는것은 제외하고 블로그 2개를 추천드립니다. 물론 이블로그의 특성상 또다른 저와 같은 고민을 하는 분들을 위해서, 혹은 그리고 나중에 제가 다시 보더라고 힌트를 얻기 위해서요 .

http://mudchobo.tomeii.com 머드초보님의 블로그입니다. 이곳에 머드초보님께서 flex를 클라이언트로 java를 서버로 해서, 만든 소스를 보실수 잇습니다. 제가 생각하기 중점은, 플래스하고 자바에서 소켓을 보내고 받는 과정입니다. 물론 중점이겠지만.

약간 덧붙이자면, 여기서 플랙스쪽에서 자바쪽으로 데이터를 받을때 InputStreamReader을 사용하는데
이것을 찾아보니 이것은 값을 뱉어낼때 형태를 지정해야합니다 int형인지 cha형인지 그러니까 2가지 자료형으로 자료를 내 뱉습니다. 그리고 만약 자료가 없을때는 -1을 리턴합니다.


그런데 약간 구경해보니까 XML로 소켓을 받을때 뒤에 \n이라는것을 붙여줘야 된다고 합니다. 그런데 자바쪽에서 보니까 이녀석이 계속 기다리기 만 하는겁니다.

이걸 int로 찍어봤더니 aaa 보낼경우 int값으로 바꾸면 96 96 96 10 0 이렇게 문장을 끝내더군요.

그리고 보낼때 PrintWriter 를 사용하는데 보낼때 저는 XML이라 \n만 넣엇는데 - 안넘어가더라고요.
다시 확인해봤떠니 \0까지 해줘야 되더라고요,,.
pw.print(result_read+"\n\0"); 대략 이정도로?


그리고 http://ummae.tistory.com/ 곳에가면 정책적인 문제를 해결하실수 있습니다.
그러니까 이 플래쉬라는 게 그냥 로컬에서 테스트할때는 소켓이 왔다 갔다가 잘합니다. 그런데 다른컴퓨터를 이용해서 접속할때는 안됩니다. 이걸 어도비에서 정책적으로 막아놨다고 합니다.

기존에는 플랙스내에서 소스 첨부하는 방법하고 정책서버를 따로 운영하는 방법방법이 있었는데 지금은
업데이트 되면서 정책서버를 따로둬야하는듯 합니다.

이곳에 링크를 따라가시면 어도비쪽에서 파이썬 ,펄로 데몬으로 해서 리눅스 환경에서 사용할수 잇는 정책서버를 만들어 올려놓앗습니다. 제가 찾아보았는데 윈도우 쪽은 없는것 같고 윈도우에서 하시려면 직접 만들으셔야 할것 같습니다.

혹시 저같은 분들을 위해서 약간의 정보를 남겨놉니다. 즐거운 하루되세요 .


저작자 표시 비영리 변경 금지
신고

'Study > --Java' 카테고리의 다른 글

java sqlite jdbc eclipse build path  (0) 2011.07.14
Java sqlite jdbc  (0) 2011.07.14
[JAVA] atoi, iota  (5) 2011.07.07
Flex 와 Java XMLsocket을 사용하기  (0) 2010.08.19
java.net.BindException: Address already in use  (0) 2010.08.19
이클립스 가릴레오(galileo) 플러그인 지우는 방법  (0) 2009.10.26
JAVA 1.6 한글 api  (2) 2009.10.05

A person holds a cup of Don Francisco coffee in Los Angeles August 12, 2010. Market researcher Packaged Facts projects U.S. coffee market growth of more than 25 percent between 2009 and 2014, with annual sales increasing to $59.6 billion from $47.5 billion. But demand for upscale coffee far outpaces that: the Specialty Coffee Association of America said sales of upscale coffee are growing at about 5 percent to 6 percent a year. Picture taken August 12, 2010. REUTERS/Sam Mircovich  (UNITED STATES - Tags: BUSINESS)



소켓프로그래밍을 하시는데 java.net.BindException: Address already in use 오류가 나온다면 100% 포트가 겹치는것입니다.
프로그래밍하시는 포트번호를 바꾸시던지 아니면 겹치는 프로그램을 종료해버리세요


겹치는걸 쉽게 확인하는 방법은 콘솔창에서 윈도우 기준 netstat -a -n -o 리눅스의 경우 nestat -ntlp
이거면 겹치는 포트를 아실수 있습니다. 리눅스의 경우는 pid가 보이니까 만약 데몬일경우 중지시켜버리거나 Kill 해버리시고 윈도우의 경우 작업표시줄에서 pid를 표시해서 막 어쩌구 저쩌구 나오는데.  그냥 제가 첨부하신 파일 사용하시는게 빠르실듯 합니다. 그러니까 그걸 왜 알려고 하는거면 그 포트를 점유하고 있는게 어떤 프로그램인지 앍 위해서인데
제가 쓰는 프로그램은 정말 알기 쉽게 나옵니다 더군다나 무설치이고요, 그냥 다운받으셔서 바로 실행하시면 됩니다.





저작자 표시 비영리 변경 금지
신고

'Study > --Java' 카테고리의 다른 글

Java sqlite jdbc  (0) 2011.07.14
[JAVA] atoi, iota  (5) 2011.07.07
Flex 와 Java XMLsocket을 사용하기  (0) 2010.08.19
java.net.BindException: Address already in use  (0) 2010.08.19
이클립스 가릴레오(galileo) 플러그인 지우는 방법  (0) 2009.10.26
JAVA 1.6 한글 api  (2) 2009.10.05
예외처리, Exception  (0) 2009.06.17
이클립스에서 플러그인을 깔았다 지우러고 하는데, 웹을 검색해보니,, 갈릴레오 버전 내용이 잘 안보여서요;; 가나메는 있는데;;

약간 갈릴레오 넘어오면서 바뀐거는.. 가나메 경우 기억에서 헷갈리는데 업데이트 하는곳에 관리하는곳이 있었는데, 갈릴레오의 경우 약간 다른듯 합니다.

참고로 저는 이클립스를 한글패치를 해서 사용중이라... 도움말 메뉴의 멘 아래 메뉴를 누르면 이클립스 정보가 나오고, 거기서 플러그인
인스톨된 목록을 볼수 있는 버튼이 나옵니다.

저작자 표시 비영리 변경 금지
신고
Rastaholm ~ sunset and flowers
Rastaholm ~ sunset and flowers by Per Ola Wiberg (Powi) 저작자 표시

 그러니까,, 자바를 보다가, 몇몇 궁금한점떄문에 API를 보려고 찾던중.

물론 웹상으로 볼수는 있지만 - 이상하게 다운받아서 보는걸 즐기는 편이라..

http://xrath.com/files/jdk-6-docs-ko.zip 에서 받으려고 했는데; 링크가 깨져있더라고요;;

jdk-6-docs-ko.zip.1.torrent

그래서 토렌트 파일로 첨부합니다. 토렌트 파일이 무엇이냐고요? 정말로 엄청나게 진보한 p2p 방식입니다. 일종의..

자매품 : 이클립스 토렌트 파일입니다.(참고로 가릴레오.)이건 이클립스 공식싸이트에서도 받으실수 있는겁니다.;ㅎㅎ


eclipse-SDK-3.5.2-win32.zip.torrent



추가합니다. 은근히 여기로 들어오시는분들이 많더군요. 일단 제가 토렌트를 유지안하는 관계로 거의 다운받기 힘드실겁니다. 한번 토렌트 파일로 받아보려고했는데 시드 파일이 없더군요 그래서 직접 압축해서 올려봅니다 .

7zip으로 압축하였고, 7zip이나 7zip을 지원하는 압축프로그램으로 파일 두개 받으셔서 압축풀어보시길 바랍니다.



jdk-6-docs-ko.7z.001


jdk-6-docs-ko.7z.002






저작자 표시 비영리 변경 금지
신고
  1. 자바 개발자 2015.01.30 14:12 신고

    사내에서 http://xrath.com/javase/ko/6/docs/ko/api/index.html 가 접근이 안되었는데, 올려주셔서 감사합니다!! 좋은 하루 되세요~



import java.io.*;

class EXC2
{
        public static void main(String args[]) throws IOException
        {
                String temp_num;
                int number;
                BufferedReader Buffer;;
                Buffer = new BufferedReader(new InputStreamReader(System.in));
                try
                {
                        System.out.print("only number : ");
                        temp_num=Buffer.readLine();
                        number=Integer.parseInt(temp_num);
                        System.out.println("number is "+number);
                }
                catch(NumberFormatException e)
                {
                        System.out.println("wrong information");

                }
                finally
                {
                        System.out.println("have noting to do");
                }
        }
}


C++에서는 예외처리가 있다고는 알고 있습니다. 아직 이쪽으로는 ++까지는 안해봐서,,
약간의 기억을 더듬자면, C로 switch case 나 또는 if를 이용해서 메뉴를 입력받을때, 물론 정상적인 시나리오로는
작동이 되겠지만..입력해서 안될 값을 입력하면 segement fault 제대로 입력했다면, 그냥 죽어버립니다..

물론, 여러가지 프로그래밍 기법들은 통해서 해결하는 방법은 있겠지만..자바를 처음 배우는 입장에서는 왠지 모를
그런것이랄까...;?

잠깐 해석하면 try는 에러가 발생할 범위이고, catch는 에러가 나면 이렇게 처리하고
finally는 에러나든지 말든지 출력합니다.


저작자 표시 비영리
신고
일단 소스코드는..
 
class SumAll
{
        public static void main(String args[])
        {
                int result;

                int n1 = Integer.parseInt(args[0]);
                int n2 = Integer.parseInt(args[1]);
                int n3 = Integer.parseInt(args[2]);

                result = n1+n2+n3;

                System.out.println(result);
        }
}



일단 저거대로 그냥 java로 실행시키면, 아규먼트 값을 안입력해서 생기신걸 볼수 있습니다.
일단 자세히는 모르겠지만.. 배열 범위를 넘어나, 그럴때 생긴 것입니다.

저작자 표시 비영리
신고

물론 C를 잘하는건 아니지만, 일단 방학인 이상,, 시간이 많다는 가정하에..자바를 시작했습니다.
예제를 쳤는데. 시작부터 오류가 나버리네요;; 혹시 저런 오류가 나시고 실행이 안되시나요?

그러면.. 100% 입니다..

저같은경우 Test로 쳐야 했는데. test로 했더니 저렇게 나오더군요.

저작자 표시 비영리
신고
1

+ Recent posts