Eclipse 3.1°ú 3.2 »çÀÌÀÇ ºñȣȯ¼º

Ç÷¯±×Àο¡ ¿µÇâÀ» ÁÖ´Â 3.1°ú 3.2 °£¿¡ ȣȯÀÌ ºÒ°¡´ÉÇÑ ¹æ¹ýÀ¸·Î Eclipse°¡ º¯°æµÇ¾ú½À´Ï´Ù. ´ÙÀ½ Ç׸ñ¿¡¼­´Â º¯°æµÈ ¿µ¿ª¿¡ ´ëÇØ ¼³¸íÇϰí 3.1 Ç÷¯±×ÀÎÀ» 3.2·Î ÀÌÁÖÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Áö½Ã»çÇ×À» Á¦°øÇÕ´Ï´Ù. 3.2¿¡¼­ 3.1 Ç÷¯±×ÀÎÀ» ½ÇÇàÇÏ´Â Áß¿¡ ¹®Á¦°¡ ¹ß»ýÇÏ´Â °æ¿ì ´ÙÀ½ »çÇ×À» »ìÆìº¸¸é µË´Ï´Ù.

  1. ÀÚ¿øÀÌ ´õ ÀÌ»ó ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖÀ» Çʿ䰡 ¾øÀ½
  2. MultiPageEditorSite¿¡ ´ëÇÑ API º¯°æ»çÇ×
  3. config.iniÀÇ ÄÁÅÙÃ÷ º¯°æ»çÇ×
  4. jnlp ¹èÄ¡ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ÄÁÅÙÃ÷ º¯°æ»çÇ×
  5. ´ÙÀ½¿¡ ´Ù½Ã ½ÃÀÛÇÒ ¶§ ¹øµéÀÌ È°¼ºÈ­µÇµµ·Ï Bundle.start()¿¡ ´ëÇÑ ¸í½ÃÀû È£Ãâ
  6. Ç÷¯±×ÀÎ ¹öÀü ¹øÈ£¿¡¼­ ´õ ÀÌ»ó ¹ØÁÙÀ» ÇÏÀÌÇÂÀ¸·Î ¹Ù²ÙÁö ¾ÊÀ½

1. ÀÚ¿øÀÌ ´õ ÀÌ»ó ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖÀ» Çʿ䰡 ¾øÀ½

¿µÇâÀ» ¹Þ´Â ´ë»ó:ÀÚ¿øÀÌ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåµÈ °ÍÀ¸·Î °£ÁֵǴ IWorkspace APIÀÇ Å¬¶óÀ̾ðÆ®

¼³¸í: Eclipse 3.2 ÀÌÀü¿¡ ±âÁ¸ÀÇ °¢ IResource´Â java.io.File¿¡¼­ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÇØ´ç ÆÄÀÏ ¶Ç´Â µð·ºÅ丮°¡ ÀÖ¾ú½À´Ï´Ù. Eclipse 3.2¿¡¼­´Â ÇØ´ç ÄÁÅÙÃ÷°¡ ÀÓÀÇÀÇ Áö¿ø ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåµÇ´Â ÀÚ¿øÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Â Áö¿øÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. ÀÌ Áö¿øÀ» »ç¿ëÇÏ´Â ÀÚ¿øÀº ´õ ÀÌ»ó java.io.File·Î Á÷Á¢ ³ªÅ¸³¾ ¼ö ¾ø½À´Ï´Ù.

Çʼö Á¶Ä¡: ÀÌÀü IResource.getLocation() ¸Þ¼Òµå´Â ÀÚ¿øÀÇ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ °æ·Î¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåµÇ¾î ÀÖÁö ¾ÊÀº ÀÚ¿ø¿¡ ´ëÇØ ³Î(null)À» ¸®ÅÏÇÕ´Ï´Ù. ´ëºÎºÐÀÇ getLocation() È£ÃâÀÚ´Â java.io.File ÀνºÅϽº¸¦ ¾ò±â À§ÇØ ±×¿Í °°ÀÌ ¼öÇàÇßÁö¸¸ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåµÇ¾î ÀÖÁö ¾ÊÀº ÀÚ¿ø¿¡´Â ´õ ÀÌ»ó java.io.FileÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

»õ org.eclipse.core.filesystem Ç÷¯±×ÀÎÀº java.io.File ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÏ¹Ý ÆÄÀÏ ½Ã½ºÅÛ API¸¦ Á¦°øÇÕ´Ï´Ù. ƯÈ÷, org.eclipse.core.filesystem.IFileStore ÀνºÅϽº´Â java.io.File¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °Í°ú µ¿ÀÏÇÑ ¸Þ¼Òµå¸¦ ´ëºÎºÐ Á¦°øÇÕ´Ï´Ù. ´ÙÀ½ ÄÚµå ½º´ÏÆêÀ» ÅëÇØ ÁöÁ¤µÈ ÀÚ¿ø¿¡ ´ëÇØ IFileStore ÀνºÅϽº¸¦ ¾ò½À´Ï´Ù.

   IResource resource = ...;//some resource
   IFileStore store = EFS.getStore(resource.getLocationURI());

´ÙÀ½ Å×ÀÌºí¿¡¼­´Â ÀϹÝÀûÀ¸·Î java.io.File·Î ¼öÇàµÈ ÀÛ¾÷¿¡ ´ëÇØ µ¿ÀÏÇÑ ¸Þ¼Òµå¸¦ IFileStore¿¡ Á¦°øÇÕ´Ï´Ù.

java.io.FileIFileStore
deletedelete
getNamegetName
getParentgetParent
listchildNames
mkdirmkdir(EFS.SHALLOW, null)
mkdirsmkdir(EFS.NONE, null)
renameTomove
new FileInputStream(file)openInputStream
new FileOutputStream(file)openOutputStream

IFileStore API¿¡¼­ IFileInfo¶ó´Â ±¸Á¶¿¡ ÀúÀåµÈ ÆÄÀÏ¿¡ ´ëÇÑ ´ëºÎºÐÀÇ Á¤º¸´Â IFileStore.fetchInfo()¸¦ È£ÃâÇÏ¿© ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ µðÀÚÀο¡¼­´Â ÁÖ·Î ´ÜÀÏ ÆÄÀÏ ½Ã½ºÅÛ È£ÃâÀ» ÅëÇØ ÆÄÀÏ¿¡ ´ëÇÑ ´Ù¼öÀÇ ¼Ó¼ºÀ» ¾òÀ» ¼ö ÀÖÀ¸¹Ç·Î java.io.FileÀ» »ç¿ëÇÏ´Â Äڵ带 ´õ È¿°úÀûÀ¸·Î ÃÖÀûÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº» ÆÄÀÏÀÌ º¯°æµÇ¸é IFileInfoÀÇ Á¤º¸°¡ ºÎ½ÇÇØÁö¹Ç·Î ÇÊ¿äÇϸé ÀνºÅϽº¸¸ º¸À¯ÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½Àº IFileInfoÀÇ ¸Þ¼Òµå¿Í ÀÏÄ¡ÇÏ´Â java.io.FileÀÇ ÀϺΠ¸Þ¼ÒµåÀÔ´Ï´Ù.

java.io.FileIFileInfo
canWriteisReadOnly
existsexists
getNamegetName
isDirectoryisDirectory
isFile!isDirectory()
isHiddenisHidden
lastModifiedgetLastModified
lengthgetLength
setLastModifiedsetLastModified
setReadOnlysetAttribute(EFS.ATTRIBUTE_READ_ONLY, true)

±¸Ã¼ÀûÀÎ ¿¹Á¦·Î¼­ ÀÌÀü¿¡ java.io.File.exists()¸¦ È£ÃâÇÏ´ø ÄÚµå´Â ÀÌÁ¦ IFileStore.fetchInfo().exists()¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. IFileInfo¸¦ ¼öÁ¤ÇÑ °æ¿ì IFileStore.putInfo ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© °á°ú¸¦ ´Ù½Ã ÀúÀåÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ½º´ÏÆêÀº ÆÄÀÏ¿¡¼­ Àбâ Àü¿ë ¼Ó¼ºÀ» Çø³(flip)ÇÕ´Ï´Ù.

   IFileStore store = ...;//some file store
   IFileInfo info = store.fetchInfo();
   boolean readOnly = info.getAttribute(EFS.ATTRIBUTE_READ_ONLY);
   info.setAttribute(EFS.ATTRIBUTE_READ_ONLY, !readOnly);
   store.putInfo(info, EFS.SET_ATTRIBUTES, null);

IProjectDescription.getLocation()

getLocation() ¸Þ¼Òµå¿Í ¸¶Âù°¡Áö·Î ÇÁ·ÎÁ§Æ® ¼³¸íÀÇ À§Ä¡´Â ´õ ÀÌ»ó ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¸ÀçÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. IProjectDescription.getLocationURI() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÀÓÀÇÀÇ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ÀÚ¿ø À§Ä¡¸¦ È®º¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·ÎÄà ij½Ì

ÀϺΠŬ¶óÀÌ¾ðÆ®¿¡´Â ÆÄÀÏÀÇ ·ÎÄà ǥ½Ã°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÇØ´ç ÆÄÀÏ¿¡ ´ëÇØ ±âº» µµ±¸¸¦ ½ÇÇàÇϰųª ÆÄÀÏ ½Ã½ºÅÛ ÀÚ¿ø¸¸ ó¸®ÇÒ ¼ö ÀÖ´Â ºñEclipse ÀÎ½Ä ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù(¿¹: java.util.zip.ZipFile). ÀÌ·± °æ¿ì ÇØ´ç ÄÁÅÙÃ÷ÀÇ Ä³½ÃµÈ ·ÎÄà »çº»À» ¸®ÅÏÇϵµ·Ï IFileStore¿¡ ¿äûÇÒ ¼ö ÀÖ½À´Ï´Ù.

   IFileStore store = ...;//some file store
   //see if it can directly be represented as a local file
   java.io.File local = store.toLocalFile(EFS.NONE, null);
   //if not, ask for a cached local copy of the file
   if (local == null)
      local = store.toLocalFile(EFS.CACHE, null);

ij½ÃµÈ ÆÄÀÏ »çº»À» È®º¸ÇÑ °æ¿ì¿¡´Â Á¦°øÇÑ ½ÇÁ¦ ÆÄÀÏ ½Ã½ºÅÛ°ú ÇØ´ç »çº»ÀÇ µ¿±âÈ­°¡ À¯ÁöµÇÁö ¾Ê½À´Ï´Ù. Áï, ij½ÃµÈ »çº»À» ¼öÁ¤Çصµ ±âº» ÆÄÀÏÀÌ ¼öÁ¤µÇÁö ¾Ê½À´Ï´Ù.

¾ÈÁ¤Àû ½ÇÆÐ

·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ ¿ÜºÎÀÇ ÀÚ¿øÀ» ó¸®ÇÒ ¼ö ¾ø´Â Ŭ¶óÀÌ¾ðÆ®¶ó°í ÇØµµ Äڵ尡 ¾ÈÁ¤ÀûÀ¸·Î ½ÇÆÐÇÏ°Ô µÇ±â¸¦ ¿øÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÚ¿øÀÌ ÀÖ´ÂÁö È®ÀÎÇÑ ´ÙÀ½ ÇØ´ç ÀÚ¿øÀ» ¹«½ÃÇϰųª ó¸®ÇÒ ¼ö ¾ø´Â ÀÚ¿øÀÌ ¹ß°ßµÇ´Â °æ¿ì¿¡´Â »ç¿ëÀÚ¿¡°Ô °æ°í¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÚ¿øÀÌ ÀÖ´ÂÁö ¿©ºÎ¸¦ È®ÀÎÇÏ·Á¸é ÆÄÀÏ ½Ã½ºÅÛ ¼³°è¸¦ ã¾Æ¾ß ÇÕ´Ï´Ù. ÀÌ´Â ´ÙÀ½°ú °°Àº ÀÚ¿ø¿¡¼­ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

   IResource resource = ...;//some resource
   URI uri = resource.getLocationURI();
   if (uri != null && EFS.SCHEME_LOCAL.equals(uri.getScheme())) {
      //file is in local file system
         } else {
      //file is not in the local file system
   }

IFileStore ÀνºÅϽº°¡ ÀÖ´Â °æ¿ì ´ÙÀ½°ú °°ÀÌ ¼³°è¸¦ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.

   IFileStore store = ...;//a file store
   store.getFileSystem().getScheme();

2. MultiPageEditorSite¿¡ ´ëÇÑ API º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: MultiPageEditorSite.progressStart() ¶Ç´Â MultiPageEditorSite.progressEnd()¸¦ È£ÃâÇϴ Ŭ¶óÀ̾ðÆ®

¼³¸í: Eclipse 3.0 °³¹ß Áß¿¡ ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â ÁøÇà»óÅ Áö¿ø ÀÛ¾÷ÀÇ ÀϺηΠÃß°¡µÇ¾ú½À´Ï´Ù. 3.0 ¸±¸®½º ÀÌÀü¿¡¼­ ÁøÇà»óŰ¡ 󸮵Ǵ ¹æ¹ýÀÌ º¯°æµÇ¾úÀ¸¹Ç·Î ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó ¿À·ù·Î ÀÎÇØ ÀÌ·¯ÇÑ °ø¿ë ¸Þ¼Òµå°¡ 3.0 ¸±¸®½º¿¡ ³²°ÜÁ³½À´Ï´Ù. ÀÌ·¯ÇÑ µÎ ¸Þ¼Òµå´Â Eclipse ¸±¸®½º¿¡¼­ ¾î¶² ±â´Éµµ ¼öÇàÇÏÁö ¾ÊÀ¸¹Ç·Î »èÁ¦µÇ¾ú½À´Ï´Ù.

Çʼö Á¶Ä¡: MultiPageEditorSite.progressStart() ¶Ç´Â MultiPageEditorSite.progressEnd()¸¦ È£ÃâÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ´ë½Å IWorkbenchSiteProgressService¸¦ »ç¿ëÇϵµ·Ï ÀüȯµÇ¾î¾ß ÇÕ´Ï´Ù.

3. config.iniÀÇ ÄÁÅÙÃ÷ º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: »ç¿ëÀÚ Á¤ÀÇ config.ini°¡ ÀÖÀ¸¸ç ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥À» 3.2·Î À̵¿Çϴ Ŭ¶óÀ̾ðÆ®

¼³¸í: 3.2 ÀÌÀüÀÇ °æ¿ì, config.ini¿¡ Æ÷ÇÔµÈ osgi.bundlesÀÇ ÀÏ¹Ý °ªÀº org.eclipse.core.runtime@2:start, org.eclipse.update.configurator@3:start¿´½À´Ï´Ù. ·±Å¸ÀÓ ¸®ÆÑÅ丵À¸·Î ÀÎÇØ, ÀÀ¿ëÇÁ·Î±×·¥À» ½ÃÀÛÇÏ·Á¸é ÀÌ °ªÀ» °»½ÅÇØ¾ß ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start°¡ Æ÷ÇԵǵµ·Ï osgi.bundles °ªÀ» º¯°æÇϽʽÿÀ.

4. jnlp ¹èÄ¡ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ÄÁÅÙÃ÷ º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: RCP ÀÀ¿ëÇÁ·Î±×·¥À» ¹èÄ¡Çϰí osgi.bundles·Î °ªÀ» ÁöÁ¤ÇÑ Å¬¶óÀ̾ðÆ®

¼³¸í: 3.2 ÀÌÀüÀÇ °æ¿ì, main jnlp ÆÄÀÏ¿¡ Æ÷ÇÔµÈ osgi.bundlesÀÇ ÀÏ¹Ý °ªÀº org.eclipse.core.runtime@2:start, org.eclipse.update.configurator@3:start¿´½À´Ï´Ù. ·±Å¸ÀÓ ¸®ÆÑÅ丵À¸·Î ÀÎÇØ ÀÌ °ªÀ» °»½ÅÇØ¾ß ÇÏ¸ç ±×·¸Áö ¾ÊÀº °æ¿ì NullPointerExceptionÀÌ ¹ß»ýÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ½ÃÀÛµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start°¡ Æ÷ÇԵǵµ·Ï osgi.bundles °ªÀ» º¯°æÇϽʽÿÀ.

5. ´ÙÀ½¿¡ ´Ù½Ã ½ÃÀÛÇÒ ¶§ ¹øµéÀÌ È°¼ºÈ­µÇµµ·Ï Bundle.start()¿¡ ´ëÇÑ ¸í½ÃÀû È£Ãâ

¿µÇâÀ» ¹Þ´Â ´ë»ó: Bundle.start()¸¦ È£ÃâÇϴ Ŭ¶óÀ̾ðÆ®

¼³¸í: Eclipse¿¡¼­´Â Eclipse-LazyStart Çì´õ(¶Ç´Â ±ÇÀåµÇÁö ¾Ê´Â Eclipse-AutoStart Çì´õ)¸¦ »ç¿ëÇÏ¿© ½ÃÀÛ Áö¿¬ ¹øµéÀÌ µÉ ¹øµéÀ» ÁöÁ¤ÇÕ´Ï´Ù. Eclipse 3.1¿¡¼­´Â org.osgi.framework.Bundle.start() ¸Þ¼Òµå·Î ½ÃÀÛ Áö¿¬ ¹øµéÀÌ Áö¼ÓÀûÀ¸·Î ½ÃÀ۵Ǵ °ÍÀ¸·Î Ç¥½ÃÇÏÁö ¾Ê¾Ò½À´Ï´Ù. ½ÃÀÛ Áö¿¬ ¹øµéÀº Áö¼ÓÀûÀ¸·Î ½ÃÀ۵Ǵ °ÍÀ¸·Î Ç¥½ÃµÇÁö ¾Ê¾Æ Eclipse¸¦ ´Ù½Ã ½ÃÀÛÇÒ ¶§ ÀÚµ¿À¸·Î ½ÃÀÛµÇÁö ¾Ê½À´Ï´Ù. Bundle.start() javadoc¿¡¼­´Â ¸Þ¼Òµå È£Ã⠽à ´ÙÀ½ Á¶°ÇÀÌ ¼º¸³µÇ¾î¾ß ÇÏ´Â °ÍÀ¸·Î ¼³¸íÇÕ´Ï´Ù.

"ÀÌ ¹øµéÀÌ ½ÃÀ۵ǾúÀ½À» Áö¼ÓÀûÀ¸·Î ±â·ÏÇÕ´Ï´Ù. ÇÁ·¹ÀÓ¿öÅ©°¡ ´Ù½Ã ½ÃÀ۵Ǹé ÀÌ ¹øµéÀÌ ÀÚµ¿À¸·Î ½ÃÀ۵Ǿî¾ß ÇÕ´Ï´Ù."

Eclipse 3.2¿¡¼­´Â ¹øµéÀÌ ½ÃÀÛ Áö¿¬ ¹øµéÀÎ °æ¿ì¶óµµ ¹øµéÀÌ Áö¼ÓÀûÀ¸·Î ½ÃÀÛµÈ °ÍÀ¸·Î ¿Ã¹Ù¸£°Ô Ç¥½ÃÇϵµ·Ï Bundle.start() ¸Þ¼Òµå°¡ ¼öÁ¤µÇ¾ú½À´Ï´Ù. ÀÌ ¼öÁ¤»çÇ×Àº OSGi ÇÁ·¹ÀÓ¿öÅ© ½ºÆåÀ» ÁؼöÇØ¾ß ÇÕ´Ï´Ù. °á°úÀûÀ¸·Î, Bundle.start()ÀÇ È£ÃâÀÚ´Â Eclipse°¡ ´Ù½Ã ½ÃÀÛµÉ ¶§ ¹øµéÀ» ½ÃÀÛÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì Eclipse°¡ ½ÃÀÛµÉ ¶§¸¶´Ù ºÒÇÊ¿äÇÑ ¹øµéÀÌ È°¼ºÈ­µÇ¹Ç·Î ÀϹÝÀûÀ¸·Î´Â ¿Ã¹Ù¸£Áö ¾ÊÀº ¹æ¹ýÀ¸·Î °£Áֵ˴ϴÙ. °æ¿ì¿¡ µû¶ó ÀÌ·Î ÀÎÇØ ¹ö±× 134412¿Í °°Àº ¿¹»óÄ¡ ¸øÇÑ °á°ú°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: Bundle.start()ÀÇ Å¬¶óÀÌ¾ðÆ®´Â ´Ù½Ã ½ÃÀÛÇÒ ¶§¸¶´Ù ¹øµéÀ» °è¼Ó Ȱ¼ºÈ­ÇÒÁö ¿©ºÎ¸¦ Æò°¡ÇØ¾ß ÇÕ´Ï´Ù. °è¼Ó Ȱ¼ºÈ­ÇÏÁö ¾ÊÀ¸·Á¸é Ŭ¶óÀÌ¾ðÆ®°¡ ¹øµéÀ» Ȱ¼ºÈ­Çϱâ À§ÇÑ ´Ù¸¥ ¹æ¹ýÀ» ¸ð»öÇØ¾ß ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì, Bundle.start() È£ÃâÀº Ŭ·¡½º°¡ ÀÌ È£ÃâÀ» ·ÎµåÇÒ ¶§ ´ë»ó ¹øµé Ȱ¼ºÈ­¸¦ Áö¿¬½ÃÅ´À¸·Î½á ¸·À» ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀÌÁö´Â ¾ÊÁö¸¸ ½ÃÀÛ Áö¿¬ ¹øµéÀ» Àû±ØÀûÀ¸·Î Ȱ¼ºÈ­ÇØ¾ß ÇÏÁö¸¸ ´Ù½Ã ½ÃÀÛ ½Ã Ȱ¼ºÈ­Çϵµ·Ï °è¼Ó Ç¥½ÃÇÏÁö ¾ÊÀº °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ À¯ÇüÀÇ ½Ã³ª¸®¿À¿¡¼­´Â Bundle.start()¸¦ È£ÃâÇÏ´Â ´ë½Å Bundle.loadClass()¸¦ »ç¿ëÇÏ¿© Ȱ¼ºÈ­ÇØ¾ß ÇÏ´Â ¹øµé¿¡¼­ Ŭ·¡½º¸¦ ·ÎµåÇØ¾ß ÇÕ´Ï´Ù.

5. Ç÷¯±×ÀÎ ¹öÀü ¹øÈ£¿¡¼­ ´õ ÀÌ»ó ¹ØÁÙÀ» ÇÏÀÌÇÂÀ¸·Î ¹Ù²ÙÁö ¾ÊÀ½

Eclipse 3.0¿¡¼­´Â ¹öÀü IDÀÇ ±ÔÁ¤ÀÚ ¼¼±×¸ÕÆ®¿¡ ¹ØÁÙ ¹®ÀÚ('_') »ç¿ëÀ» Áö¿øÇÏÁö ¾ÊÀ¸¸ç °­Á¦ ½ÇÇàÇÏÁöµµ ¾Ê½À´Ï´Ù. Ç÷¯±×ÀÎ ¹öÀü IDÀÇ ±ÔÁ¤ÀÚ¿¡ ¹ØÁÙÀÌ Æ÷ÇԵǴ °æ¿ì Ç÷¯±×ÀÎÀ» ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î ³»º¸³¾ ¶§ ¶ÇÇÑ °»½Å »çÀÌÆ®¿¡¼­ Ç÷¯±×ÀÎÀ» ¼³Ä¡ÇÒ ¶§ ÇØ´ç ¹®ÀÚ°¡ ÇÏÀÌÇÂ('-')À¸·Î º¯È¯µË´Ï´Ù.
Eclipse 3.1ÀÇ °æ¿ì, ±ÔÁ¤ÀÚ¿¡¼­ Çã¿ëµÇ´Â ¹®ÀÚ¿¡ ´ëÇÑ ±ÔÄ¢ÀÌ ¿ÏÈ­µÇ¾î ¹ØÁÙ ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­ ¹®Á¦ Ç÷¯±×ÀÎÀ» ³»º¸³»°Å³ª ¼³Ä¡ÇÒ ¶§ ±ÔÁ¤ÀÚ°¡ ¿ø·¡ »óÅ¿¡¼­ ¼öÁ¤µÇÁö ¾Ê½À´Ï´Ù. ÀÌ ¹Ì¼¼ÇÑ º¯°æ»çÇ×Àº 3.0¿¡¼­ 3.1·ÎÀÇ ÀÌÁÖ ¾È³»¼­¿¡¼­ ½Ç¼ö·Î ´©¶ôµÇ¾ú½À´Ï´Ù. µû¶ó¼­ ¾ÕÀ¸·Î ¶ÇÇÑ Eclipse 3.2ÀÇ °æ¿ì, Eclipse 3.1°úÀÇ È£È¯¼ºÀ» À¯ÁöÇϸ鼭 ÇØ´ç ¹öÀü ±ÔÁ¤ÀÚ¿¡¼­ ¹ØÁÙ ¹®ÀÚ¸¦ »ç¿ëÇÏ´Â Ç÷¯±×ÀÎÀº ÀÌÀü Ç÷¯±×ÀÎ ¹öÀüÀ» ó¸®ÇÒ ¶§(Ç÷¯±×ÀÎÀ» ³»º¸³»°Å³ª Ç÷¯±×ÀÎÀÌ °»½Å »çÀÌÆ®¿¡ ÀÖÀ» ¶§ ¸ðµÎ ÇØ´ç) ¾Õ¿¡¼­ ¼³¸íÇÑ º¯°æ»çÇ׿¡ À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù. ÀÌ´Â ¿¹¸¦ µé¾î, °»½Å »çÀÌÆ®¿¡ ÇØ´ç Ç÷¯±×ÀÎÀÇ ÀÌÀü ¹öÀüÀ» °®°í ÀÖ´Â Ç÷¯±×ÀÎ Á¦°øÀÚÀÇ °æ¿ì ÆÄÀÏ ½Ã½ºÅÛÀÇ À̸§ÀÌ Ç÷¯±×ÀÎÀÇ À̸§°ú ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎÇØ¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù.