Java ºôµå °æ·Î ¼³Á¤

ÀÌ Àý¿¡¼­´Â Java ºôµå °æ·Î ¼³Á¤ ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ÀÌ ºôµå °æ·Î´Â Java ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇϱâ À§ÇØ »ç¿ëµÇ´Â Ŭ·¡½º °æ·ÎÀÔ´Ï´Ù(IJavaProject).

°£´ÜÇϰÔ, Ŭ·¡½º °æ·Î´Â »ç¿ë °¡´ÉÇÑ À¯ÇüÀ» ¼³¸íÇϴ Ŭ·¡½º °æ·Î Ç׸ñ(IClassPathEntry)ÀÇ ¹è¿­ÀÔ´Ï´Ù. À¯ÇüÀº ¼Ò½º ¶Ç´Â 2Áø ¾ç½ÄÀ¸·Î Ç¥½ÃµÉ ¼ö ÀÖÀ¸¸ç °æ·Î¿¡¼­ÀÇ Ç׸ñ ¼ø¼­¿¡ µû¶ó ºôµå Áß À¯ÇüÀ» ºÐ¼®Çϱâ À§ÇÑ Ã£¾Æº¸±â ¼ø¼­°¡ Á¤Àǵ˴ϴÙ.

Java ºôµå °æ·Î´Â Java ÇÁ·ÎÁ§Æ® ¿ä¼Ò ±¸Á¶¿¡ ¹Ý¿µµË´Ï´Ù. ÇÁ·ÎÁ§Æ®¿¡ ÆÐŰÁö ´ÜÆí ·çÆ®(IPackageFragmentRoot)¸¦ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.  °¢°¢ÀÇ Å¬·¡½º °æ·Î Ç׸ñÀº Çϳª ÀÌ»óÀÇ ÆÐŰÁö ´ÜÆí ·çÆ®¿¡ ¸ÊÇεǸç, °¢ ·çÆ®¿¡´Â ÆÐŰÁö ´ÜÆí ¼¼Æ®°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

ºôµå °æ·Î¿¡ ´ëÇÑ ÀÌ ¼³¸í¿¡¼­´Â ºôµå °æ·Î¿Í º°µµ·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Â Java ·±Å¸ÀÓ °æ·Î´Â ´Ù·çÁö ¾Ê½À´Ï´Ù. (·±Å¸ÀÓ Å¬·¡½º °æ·Î¿¡ ´ëÇÑ ¼³¸íÀº Java ÄÚµå ½ÇÇàÀ» ÂüÁ¶ÇϽʽÿÀ.)

ºôµå °æ·Î º¯°æ

ÇØ´ç ÇÁ·ÎÁ§Æ®ÀÇ Java ¿ä¼Ò¿¡ setRawClasspath¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®ÀÇ ºôµå °æ·Î¸¦ ÇÁ·Î±×·¡¹ÖÇÏ¿© º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ÄÚµå´Â ÇÁ·ÎÁ§Æ® ÀÚ¿øÀÇ Å¬·¡½º °æ·Î¸¦ ¼³Á¤ÇÕ´Ï´Ù.

	IProject project = ... // get some project resource
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(Âü°í: "¿ø·¡" Ŭ·¡½º °æ·Î¶ó´Â ¿ë¾î´Â ºÐ¼®µÇÁö ¾ÊÀº Ç׸ñ À§Ä¡¸¦ ¼³¸íÇϱâ À§ÇØ º¯¼ö°¡ »ç¿ëµÇ¾úÀ½À» °­Á¶ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.)

Java ºôµå °æ·Î´Â ÇÁ·ÎÁ§Æ®ÀÇ ÆÄÀÏ ±¸Á¶¿¡¼­ '.classpath'¶ó´Â ÆÄÀÏ¿¡ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀÇ ¸ñÀûÀº ÀϺΠ¼Ò½º ÄÚµå ÀúÀå¼Ò¸¦ ÅëÇØ ´Ù¸¥ »ç¿ëÀÚ¿Í Java ºôµå °æ·Î ¼³Á¤À» °øÀ¯ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. ƯÈ÷ ÀÌ ÆÄÀÏÀº Á÷Á¢ ÆíÁýÇÏÁö ¸¶½Ê½Ã¿À. ¼Õ»óµÉ ¼ö ÀÖ½À´Ï´Ù.

Ŭ·¡½º °æ·Î Ç׸ñ

Ŭ·¡½º °æ·Î Ç׸ñÀº JavaCore¿¡ Á¤ÀÇµÈ ÆÑÅ丮 ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.  Ŭ·¡½º °æ·Î Ç׸ñÀº ´ÙÀ½À» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Á¦¿Ü ÆäÅÏ

Ŭ·¡½º °æ·Î ¼Ò½º Ç׸ñ¿¡´Â Ŭ·¡½º °æ·Î¿¡¼­ ¼Ò½º Æú´õÀÇ Æ¯Á¤ ÀÚ¿øÀÌ Ç¥½ÃµÇÁö ¾Êµµ·Ï Á¦¿Ü ÆÐÅÏÀÌ ÁöÁ¤µÉ ¼öµµ ÀÖ½À´Ï´Ù.  ÆÐÅÏÀ» »ç¿ëÇϸé ÀÚ¿ø Æ®¸®ÀÇ ÁöÁ¤µÈ ºÎºÐÀÌ ÇÊÅ͵ǵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ Á¦¿Ü ÆÐÅÏ °æ·Î´Â Ŭ·¡½º °æ·Î Ç׸ñ¿¡ »ó´ëÀûÀ̸ç Ant¿Í À¯»çÇÑ ÆÐÅÏ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÕ´Ï´Ù. ¿ÜºÎ ÆÐÅÏÀÌ ³»ºÎ ÆÐÅÏÀ» Á¦¿ÜÇÒ °æ¿ì ÁßøµÈ ¼Ò½º Æú´õ¸¦ ÁöÁ¤ÇÏ´Â µ¥ Á¦¿Ü ÆÐÅÏÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Á¦¿Ü ÆÐÅÏ¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº getExclusionPatterns¸¦ ÂüÁ¶ÇϽʽÿÀ.

Java ÇÁ·ÎÁ§Æ® API isOnClasspath´Â ƯÁ¤ ÀÚ¿øÀÌ ÇØ´ç Ŭ·¡½º °æ·Î¿¡ ÀÖ´ÂÁö ¿©ºÎ¸¦ ÆÇº°Çϱâ Àü¿¡ Æ÷ÇÔ ¹× Á¦¿Ü ÆÐÅÏÀ» ¸ðµÎ È®ÀÎÇÕ´Ï´Ù.

¼³¸í:

Æ÷ÇÔ ÆÐÅÏ

Ŭ·¡½º °æ·Î ¼Ò½º Ç׸ñ¿¡´Â Ŭ·¡½º °æ·Î¿¡ ÀÚ¿øÀÌ Ç¥½ÃµÇµµ·Ï ¸í½ÃÀûÀ¸·Î Á¤ÀÇÇÏ´Â Æ÷ÇÔ ÆÐÅÏÀÌ ÁöÁ¤µÉ ¼öµµ ÀÖ½À´Ï´Ù.  Æ÷ÇÔ ÆÐÅÏÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ¼Ò½º Ç׸ñÀº ÀÌ ¼Ò½º Ç׸ñÀÇ °æ·Î¿¡ ·çÆ® ÁöÁ¤µÈ ÀÚ¿ø Æ®¸®¿¡ ¸ðµç °ü·Ã ÆÄÀÏÀ» Æ÷ÇÔÇÕ´Ï´Ù. Çϳª ÀÌ»óÀÇ Æ÷ÇÔ ÆÐÅÏÀ» ÁöÁ¤ÇÑ´Ù´Â °ÍÀº ÀÚ¿ø Æ®¸®ÀÇ ÁöÁ¤µÈ ºÎºÐ¸¸ Æ÷ÇԵǴ °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÁöÁ¤µÈ °¢ °æ·Î´Â »ó´ë °æ·ÎÀ̾î¾ß Çϸç ÀÌ ¼Ò½º Ç׸ñÀÇ °æ·Î¿Í °ü·ÃµÇ¾î ÇØ¼®µË´Ï´Ù. ÆÄÀÏ ÆÐÅÏÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÕ´Ï´Ù. ÀÌµé ÆÐÅÏ Áß Çϳª ÀÌ»ó¿¡ ÀÇÇØ ÀÏÄ¡µÇ´Â ÆÄÀÏÀº ÀÌ Ç׸ñÀÇ Á¦¿Ü ÆÐÅÏ Áß Çϳª ÀÌ»ó¿¡ ÀÇÇØ Á¦¿ÜµÈ °æ¿ì¸¦ Á¦¿ÜÇϰí´Â ÇØ´ç ÆÐŰÁö ´ÜÆí ·çÆ®¿¡ Æ÷ÇԵ˴ϴÙ.

°æ·Î ÆÐÅÏÀÇ ±¸¹® ¹× ½Ã¸Çƽ¿¡ ´ëÇÑ ¼³¸íÀº getExclusionPatterns¸¦ ÂüÁ¶ÇϽʽÿÀ. Æ÷ÇÔ ÆÐÅÏÀÌ ¾ø´Ù´Â °ÍÀº Àǹ̻óÀ¸·Î´Â ¸í½ÃÀû Æ÷ÇÔ ÆÐÅÏ **°ú µ¿µîÇÕ´Ï´Ù.

Java ÇÁ·ÎÁ§Æ® API isOnClasspath´Â ƯÁ¤ ÀÚ¿øÀÌ ÇØ´ç Ŭ·¡½º °æ·Î¿¡ ÀÖ´ÂÁö ¿©ºÎ¸¦ ÆÇº°Çϱâ Àü¿¡ Æ÷ÇÔ ¹× Á¦¿Ü ÆÐÅÏÀ» ¸ðµÎ È®ÀÎÇÕ´Ï´Ù.

¿¹Á¦:

Ŭ·¡½º °æ·Î ºÐ¼®

Ŭ·¡½º °æ·Î º¯¼ö ¹× ÄÁÅ×À̳ʸ¦ »ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î ¹ÙÀεåµÈ Ŭ·¡½º °æ·Î Ç׸ñÀ» Á¤ÀÇÇÒ ¼ö ÀÖÀ¸¹Ç·Î, Ŭ·¡½º °æ·Î API´Â ¿ø·¡ Ŭ·¡½º °æ·Î¿Í ºÐ¼®µÈ Ŭ·¡½º °æ·Î¸¦ ±¸º°ÇÕ´Ï´Ù. ¿ø½Ã Ŭ·¡½º °æ·Î´Â ¿ø·¡ setRawClasspath¸¦ »ç¿ëÇÏ¿© Java ÇÁ·ÎÁ§Æ®¿¡ ¼³Á¤µÈ Ŭ·¡½º °æ·ÎÀ̸ç ÇÁ·ÎÁ§Æ®¿¡ getRawClasspath¸¦ ¿äûÇÏ¿© ³ªÁß¿¡ Á¶È¸µÉ ¼ö ÀÖ½À´Ï´Ù.  ºÐ¼®µÈ Ŭ·¡½º °æ·Î´Â getResolvedClasspath¸¦ »ç¿ëÇÏ¿© Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿ÀÆÛ·¹À̼ÇÀº Ŭ·¡½º °æ·Î¸¦ ºÐ¼®ÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸ðµç º¯¼ö ¹× ÄÁÅ×À̳ÊÀÇ ÃʱâÈ­¸¦ Æ®¸®°ÅÇÕ´Ï´Ù. ¸¹Àº Java ¸ðµ¨ Á¶ÀÛÀº ¾Ï½ÃÀûÀ¸·Î Java ºôµå °æ·Î¸¦ ºÐ¼®Çϵµ·Ï ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÇÁ·ÎÁ§Æ® ÆÐŰÁö ´ÜÆí ·çÆ®¸¦ °è»êÇÒ °æ¿ì ºôµå °æ·Î¸¦ ºÐ¼®ÇØ¾ß ÇÕ´Ï´Ù.