¿ì¸®´Â »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º³ª ±âŸ ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÀÌÀüÀÇ ÀÏ¹Ý Java¿¡¼ "Hello World"°¡ ¾î¶»°Ô Ç¥½ÃµÇ´ÂÁö ¾Ë°í ÀÖ½À´Ï´Ù.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
Eclipse Ç÷§Æû ÄÁÅØ½ºÆ®¿¡¼´Â ÀÌ ÀÌÀü Ç¥ÁØÀÌ ¾î¶»°Ô µÉ±î¿ä? Hello World¸¦ ¿ÏÀüÇÑ ÇÁ·Î±×·¥À¸·Î »ý°¢ÇÏÁö ¸»°í Ç÷§Æû È®ÀåÀ¸·Î »ý°¢ÇϽʽÿÀ. Hello World¸¦ ÀÛ¼ºÇÏ·Á¸é Workbench¸¦ È®ÀåÇÏ´Â ¹æ¹ýÀ» ÀÌÇØÇØ¾ß ÇÕ´Ï´Ù.
Ç÷§Æû »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ±¸¼º¿ä¼Ò¿¡ ´ëÇØ Á¡Á¡ ¸¹ÀÌ ¾Ë¼ö·Ï Workbench UI¸¦ È®ÀåÇÏ°í »ç¿ëÀÚ Á¤ÀÇÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» öÀúÈ÷ °ËÅäÇÏ°Ô µË´Ï´Ù. Áö±ÝÀº °¡Àå ´Ü¼øÇÑ Workbench È®ÀåÀÇ ÇϳªÀÎ "º¸±â"·Î ½ÃÀÛÇÕ´Ï´Ù.
Workbench âÀ» ¿©·¯ ºñÁÖ¾ó ÆÄÆ®¸¦ Á¦°øÇÏ´Â ÇÁ·¹ÀÓÀ¸·Î »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄÆ®´Â º¸±â¿Í ÆíÁý±â¶ó´Â µÎ °¡Áö ÁÖ¿ä Ä«Å×°í¸®·Î ³ª´©¾îÁý´Ï´Ù. ³ªÁß¿¡ ÆíÁý±â¸¦ »ìÆìº¸°Ú½À´Ï´Ù. º¸±â¿¡¼´Â »ç¿ëÀÚ°¡ Workbench¿¡¼ »ç¿ëÇÏ´Â ÀϺΠ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. »ç¿ëÀÚ°¡ Workbench¿¡¼ ¼·Î ´Ù¸¥ ¿ÀºêÁ§Æ®¸¦ ¼±ÅÃÇÏ¸é º¸±â°¡ ÄÁÅÙÃ÷¸¦ º¯°æÇÏ´Â °æ¿ìµµ ¸¹½À´Ï´Ù.
Hello world Ç÷¯±×ÀÎÀÇ °æ¿ì, °íÀ¯ÀÇ º¸±â¸¦ ±¸ÇöÇÏ¿© "Hello World"¸¦ ÀÛ¼ºÇØ º¾´Ï´Ù.
org.eclipse.ui ÆÐŰÁö ¹× ¼ºêÆÐŰÁö¿¡´Â Workbench »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º(UI) API¸¦ Á¤ÀÇÇÏ´Â °ø¿ë ÀÎÅÍÆäÀ̽º°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º Áß ´Ù¼ö¿¡´Â ½Ã½ºÅÛ¿¡ ÀÏ¹Ý ¼öÁ¤»çÇ×À» Á¦°øÇϱâ À§ÇØ È®ÀåÇÒ ¼ö ÀÖ´Â ±âº» ±¸Çö Ŭ·¡½º°¡ ÀÖ½À´Ï´Ù. Hello world ¿¹¿¡¼´Â 'hello'¶ó°í ÀλçÇÏ´Â ·¹À̺íÀ» Á¦°øÇϱâ À§ÇØ Workbench º¸±â¸¦ È®ÀåÇÕ´Ï´Ù.
Èï¹Ì·Î¿î ÀÎÅÍÆäÀ̽º´Â IViewPart·Î, Workbench¿¡ º¸±â¸¦ Á¦°øÇϱâ À§ÇØ ±¸ÇöµÇ¾î¾ß ÇÏ´Â ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. ViewPart Ŭ·¡½º´Â ÀÌ ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ±âº» ±¸ÇöÀ» Á¦°øÇÕ´Ï´Ù. °£´ÜÈ÷ ¸»ÇØ º¸±â ÆÄÆ®´Â º¸±â¸¦ Ç¥½ÃÇÏ´Â µ¥ ÇÊ¿äÇÑ À§ÁöÆ®(widget) ÀÛ¼ºÀ» ´ã´çÇÕ´Ï´Ù.
Workbench¿¡¼ Ç¥ÁØ º¸±â´Â Á¾Á¾ »ç¿ëÀÚ°¡ ¼±ÅÃÇ߰ųª Ž»ö ÁßÀÎ ÀϺΠ¿ÀºêÁ§Æ® Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. º¸±â´Â Workbench¿¡¼ ¹ß»ýÇÏ´Â Á¶Ä¡¸¦ ±â¹ÝÀ¸·Î ÄÁÅÙÃ÷¸¦ °»½ÅÇÕ´Ï´Ù. Áö±ÝÀÇ °æ¿ì´Â Hello world¸¸À» ÀÛ¼ºÇϹǷΠº¸±â´Â ¾ÆÁÖ ´Ü¼øÇÕ´Ï´Ù.
Eclipse Ç÷¯±×ÀÎÀ» ºôµåÇÒ ¸ðµç Java IDE¸¦ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ Eclipse Java IDE¸¦ »ç¿ëÇÏ¿© °íÀ¯ÇÑ Ç÷¯±×ÀÎÀ» ºôµåÇÏ´Â ´Ü°è¸¦ »ìÆìº¸°Ú½À´Ï´Ù. Eclipse Workbench¿Í Java IDE¿¡ Àͼ÷ÇÏÁö ¾ÊÀ¸¸é Java °³¹ß »ç¿ëÀÚ ¾È³»¼¿¡¼ ¼öÇàÇÒ ´Ü°è¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ. ÀÌÁ¦´Â µµ±¸°¡ ¾Æ´Ï¶ó Äڵ忡 ÃÐÁ¡À» ¸ÂÃß°Ú½À´Ï´Ù. ±×·¯³ª ½ÃÀÛÇϱâ À§ÇÑ ÀϺΠIDE ³í¸®°¡ ÀÖ½À´Ï´Ù.
Á¤¸® ȯ°æÀ¸·Î ½ÃÀÛÇÏ´Â °æ¿ì Äڵ忡 Ç÷¯±×ÀÎ org.eclipse.ui¿¡ ´ëÇÑ ¾×¼¼½º°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¾Æ·¡ ´Ü°è¸¦ ¼öÇàÇÏ¿© ·±Å¸ÀÓ Workbench ÀνºÅϽº¿¡ ÇÊ¿äÇÑ ÀÌ Ç÷¯±×ÀÎ ¹× ¸ðµç Ç÷¯±×ÀÎÀ» °¡Á®¿À½Ê½Ã¿À. ÀÌ¹Ì »ç¿ëÀÚÀÇ Workbench ÀνºÅϽº¿¡ ÀÌ·¯ÇÑ Ç÷¯±×ÀÎÀÌ ÀÖÀ¸¸é "»ç¿ëÀÚÀÇ Ç÷¯±×ÀÎ ÇÁ·ÎÁ§Æ® ÀÛ¼º" ÀýÀ» ÁøÇàÇϽʽÿÀ.
È£½ºÆ® ¹× ·±Å¸ÀÓ Workbench ÀνºÅϽº ¼³Á¤¿¡ °üÇÑ ¿ÏÀüÇÑ ¼³¸íÀº PDE ¾È³»¼¸¦ ÂüÁ¶ÇϽʽÿÀ.
ÀÌÁ¦ ÀϺΠÄڵ带 ÇнÀÇÒ Áغñ°¡ µÇ¾ú½À´Ï´Ù. ´ÙÀ½Àº HelloWorldView¿¡¼ ÇÊ¿äÇÑ ¸ðµç °ÍÀÔ´Ï´Ù. ¾Æ·¡ ÄÁÅÙÃ÷¸¦ ÀÛ¼ºÇÑ Å¬·¡½º·Î º¹»çÇÒ ¼ö ÀÖ½À´Ï´Ù.
package org.eclipse.examples.helloworld; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart; public class HelloWorldView extends ViewPart { Label label; public HelloWorldView() { } public void createPartControl(Composite parent) { label = new Label(parent, SWT.WRAP); label.setText("Hello World"); } public void setFocus() { // set focus to my widget. For a label, this doesn't // make much sense, but for more complex sets of widgets // you would decide which one gets the focus. } }
º¸±â ÆÄÆ®´Â createPartControl ¸Þ¼Òµå¿¡ º¸±â¸¦ Ç¥½ÃÇÒ À§ÁöÆ®(widget)¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ ¿¹¿¡¼´Â SWT ·¹À̺íÀ» ÀÛ¼ºÇÏ¿© ÀÌ ·¹ÀÌºí¿¡ "Hello World" ÅØ½ºÆ®¸¦ ¼³Á¤ÇÏ°Ô µË´Ï´Ù.
À̰ÍÀÌ ÇÊ¿äÇÑ ÀüºÎÀÔ´Ï´Ù. »õ Ŭ·¡½º¸¦ ÄÄÆÄÀÏÇÒ ¼ö ÀÖÁö¸¸ .classpath°¡ Á¦´ë·Î ¼³Á¤µÇ¾î¼ Äڵ带 ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´ÂÁö È®ÀÎÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
º¸±â¸¦ ÄÄÆÄÀÏÇß½À´Ï´Ù. »õ º¸±â ¸ð¾çÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù.
¾î¶»°Ô Äڵ带 ½ÇÇàÇϰí ÀÌ º¸±â¸¦ Workbench¿¡ Ãß°¡Çմϱî?
Ç÷§Æû¿¡ º¸±â¸¦ Á¦°øÇÏ·Á ÇÑ´Ù´Â »ç½ÇÀ» ¾Ë·Á¾ß ÇÕ´Ï´Ù. À̰ÍÀº org.eclipse.ui.views È®ÀåÁ¡À» È®ÀåÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÚµåÀÇ À§Ä¡, Ãß°¡ÇÏ´Â È®Àå µî Ç÷¯±×ÀÎÀ» ¼³¸íÇÏ´Â Manifest ÆÄÀÏ(plugin.xml)À» Á¦°øÇÏ¿© È®ÀåÁ¡À» µî·ÏÇÕ´Ï´Ù.
°è¼Ó ÁøÇàÇϰí ÀÖÀ¸¸é ÀÌ Á¤º¸¸¦ ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¶§ »ý¼ºµÈ plugin.xml·Î º¹»çÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?xml version="1.0" ?> <plugin name="Hello World Example" id="org.eclipse.examples.helloworld" version="1.0"> <requires> <import plugin="org.eclipse.ui" /> </requires> <runtime> <library name="helloworld.jar" /> </runtime> <extension point="org.eclipse.ui.views"> <category id="org.eclipse.examples.helloworld.hello" name="Hello" /> <view id="org.eclipse.examples.helloworld.helloworldview" name="Hello Greetings" category="org.eclipse.examples.helloworld.hello" class="org.eclipse.examples.helloworld.HelloWorldView" /> </extension> </plugin>
ÀÌ ÆÄÀÏ¿¡¼ Ç÷¯±×ÀÎÀÇ À̸§, ID, ¹öÀüÀ» Á¤ÀÇÇÕ´Ï´Ù.
Çʼö Ç÷¯±×Àεµ ³ª¿ÇÕ´Ï´Ù. Ç÷¯±×Àο¡¼ SWT API¿Í Workbench¸¦ »ç¿ëÇϹǷΠorg.eclipse.uiµµ ³ª¿ÇØ¾ß ÇÕ´Ï´Ù. ½ÇÇà °¡´É ÄÚµå À§Ä¡µµ ¼³¸íÇØ¾ß ÇÕ´Ï´Ù. helloworld.jarÀÇ Äڵ带 ÆÐŰÁöÈÇÏ¿© ¶óÀ̺귯¸® À̸§À¸·Î µî·ÏÇϰíÀÚ ÇÕ´Ï´Ù.
¸¶Áö¸·À¸·Î, Ç÷¯±×ÀÎÀÌ Á¦°øÇÏ´Â È®ÀåÁ¡À» ¼±¾ðÇÕ´Ï´Ù. org.eclipse.ui.views È®Àå¿¡´Â ¼·Î ´Ù¸¥ ¸î °³ÀÇ ±¸¼º ¸Å°³º¯¼ö°¡ ÀÖ½À´Ï´Ù. ¸ÕÀú, º¸±â È®ÀåÀÇ Ä«Å×°í¸®¸¦ ¼±¾ðÇÕ´Ï´Ù. Ä«Å×°í¸®´Â Workbench º¸±â Ç¥½Ã ´ëÈ »óÀÚ¿¡¼ °ü·Ã º¸±â¸¦ ÇÔ²² ±×·ìÈÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÇØ´ç ±×·ì¿¡ Ç¥½ÃµÇµµ·Ï °íÀ¯ÇÑ Ä«Å×°í¸® "Hello,"¸¦ Á¤ÀÇÇÕ´Ï´Ù. º¸±âÀÇ °íÀ¯ ID¸¦ ¼±¾ðÇϰí, º¸±â ±¸ÇöÀ» Á¦°øÇϴ Ŭ·¡½º À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.º¸±â Ç¥½Ã ´ëÈ »óÀÚ¿Í º¸±â Á¦¸ñ Ç¥½ÃÁÙ¿¡ Ç¥½ÃµÉ º¸±â À̸§("Hello Greetings")µµ ÁöÁ¤ÇÕ´Ï´Ù.
Ç÷¯±×ÀÎ Manifest ÆÄÀÏ¿¡¼´Â ¿©·¯ °³ÀÇ ID°¡ »ç¿ëµË´Ï´Ù. °³º° È®ÀåÁ¡Àº Á¾Á¾ ID(¿¹: º¸±â È®ÀåÁ¡¿¡ ´ëÇØ À§¿¡¼ »ç¿ëµÈ Ä«Å×°í¸® ID)°¡ ÇÊ¿äÇÑ ±¸¼º ¸Å°³º¯¼ö¸¦ Á¤ÀÇÇÕ´Ï´Ù. Ç÷¯±×ÀÎ IDµµ Á¤ÀÇÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¼³Ä¡µÈ ¸ðµç Ç÷¯±×ÀÎ °£¿¡ °íÀ¯¼ºÀ» À¯ÁöÇϵµ·Ï ÇÏ·Á¸é ¸ðµç ID¿¡ Java ÆÐŰÁö À̸§ Á¢µÎºÎ¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Á¢µÎºÎ ´ÙÀ½¿¡ »ç¿ëÇϴ ƯÁ¤ À̸§Àº »ç¿ëÀÚ°¡ ÀÓÀÇ·Î Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª Ç÷¯±×ÀÎ ID Á¢µÎºÎ°¡ »ç¿ëÀÚÀÇ ÆÐŰÁö Á¢µÎºÎ¿Í Á¤È®È÷ µ¿ÀÏÇÑ À̸§ÀÏ °æ¿ì, ÇØ´ç ÆÐŰÁö¿¡¼ Ŭ·¡½º À̸§À» »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ID À̸§ÀÎÁö Ŭ·¡½º À̸§ÀÎÁö ±¸ºÐÇÏ±â ¾î·Æ½À´Ï´Ù.
¼·Î ´Ù¸¥ È®Àå ±¸¼º ¸Å°³º¯¼ö¿¡ µ¿ÀÏÇÑ ID¸¦ »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. À§ÀÇ Manifest¿¡¼, °øÅë ID Á¢µÎºÎ(org.eclipse.examples.helloworld)¸¦ »ç¿ëÇßÁö¸¸ ¸ðµç ID´Â °íÀ¯ÇÕ´Ï´Ù. ÀÌ À̸§ ÁöÁ¤ Á¢±Ù¹æ¹ýÀº ÆÄÀÏÀ» ÀÐ¾î °ü·ÃµÈ ID¸¦ ÆÄ¾ÇÇÏ´Â µ¥ µµ¿òÀÌ µË´Ï´Ù.
º¸±â¸¦ ±¸ÇöÇϰí Ç÷¯±×ÀÎ Manifest¿¡ Áö½Ã¹®À» ¼±¾ðÇß½À´Ï´Ù. ÀÌÁ¦´Â Ç÷¯±×ÀÎÀ» Ç÷§Æû¿¡ ¼³Ä¡ÇÏ¿© ½ÇÇàÇÒ ¼ö ÀÖ°Ô ÇØ¾ß ÇÕ´Ï´Ù.