Java ¸ðµ¨Àº Java ÇÁ·Î±×·¥ÀÇ ÀÛ¼º, ÆíÁý ¹× ºôµå¿Í ¿¬°üµÈ ¿ÀºêÁ§Æ®¸¦ ¸ðµ¨¸µÇϴ Ŭ·¡½º ¼¼Æ®ÀÔ´Ï´Ù. Java ¸ðµ¨ Ŭ·¡½º´Â org.eclipse.jdt.core¿¡ Á¤Àǵ˴ϴÙ. ÀÌ·¯ÇÑ Å¬·¡½º´Â ÀÚ¿ø¿¡ ´ëÇÑ Java °íÀ¯ÀÇ ÀÛµ¿À» ±¸ÇöÇÏ°í ³ª¾Æ°¡ Java ÀÚ¿øÀ» ¸ðµ¨ ¿ä¼Ò·Î ºÐÇØÇÕ´Ï´Ù.
org.eclipse.jdt.core ÆÐŰÁö´Â Java ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â ¿ä¼Ò¸¦ ¸ðµ¨¸µÇϴ Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. JDT´Â ³»ºÎ ¸Þ¸ð¸® ¿ÀºêÁ§Æ® ¸ðµ¨À» »ç¿ëÇÏ¿© Java ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ ±¸Á¶´Â ÇÁ·ÎÁ§Æ® Ŭ·¡½º °æ·Î·Î ºÎÅÍ ¾ò¾îÁý´Ï´Ù. ÀÌ ¸ðµ¨Àº °èÃþÀûÀÔ´Ï´Ù. ÇÁ·Î±×·¥ÀÇ ¿ä¼Ò´Â ÇÏÀ§ ¿ä¼Ò·Î ºÐÇØµÉ ¼ö ÀÖ½À´Ï´Ù.
Java ¿ä¼Ò Á¶ÀÛÀº ÀÚ¿ø ¿ÀºêÁ§Æ® Á¶ÀÛ°ú À¯»çÇÕ´Ï´Ù. Java ¿ä¼Ò¿¡ ´ëÇÑ ÀÛ¾÷Àº ½ÇÁ¦·Î ±âº» ¸ðµ¨ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ Ã³¸® ÀÛ¾÷ÀÔ´Ï´Ù. ÀÛ¾÷°ø°£¿¡ ¿ä¼Ò°¡ ½ÇÁ¦·Î ÀÖ´ÂÁö¸¦ ÆÇº°ÇÏ·Á¸é exists() ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½ Å×À̺íÀº ¿©·¯ °¡Áö À¯ÇüÀÇ Java ¿ä¼Ò¿¡ ´ëÇØ ¿ä¾àÇÕ´Ï´Ù.
¿ä¼Ò | ¼³¸í |
---|---|
IJavaModel | ÀÛ¾÷°ø°£¿¡ ÇØ´çÇÏ´Â ·çÆ® Java ¿ä¼Ò¸¦ Ç¥½ÃÇÕ´Ï´Ù. ¸ðµç ÇÁ·ÎÁ§Æ®ÀÇ »óÀ§´Â Java ¼Ó¼ºÀ» °¡Áý´Ï´Ù. ¶ÇÇÑ Java ¼Ó¼º ¾øÀÌ ÇÁ·ÎÁ§Æ®¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ±ÇÇѵµ Á¦°øÇÕ´Ï´Ù. |
IJavaProject | ÀÛ¾÷°ø°£ÀÇ Java ÇÁ·ÎÁ§Æ®¸¦ Ç¥½ÃÇÕ´Ï´Ù( IJavaModelÀÇ ÇÏÀ§). |
IPackageFragmentRoot | ÀÏ·ÃÀÇ ÆÐŰÁö ´ÜÆíÀ» Ç¥½ÃÇÏ°í ´ÜÆíÀ» Æú´õ, JAR ¶Ç´Â ZIP ÆÄÀÏÀÎ ±âº» ÀÚ¿øÀ¸·Î ¸ÊÇÎÇÕ´Ï´Ù(IJavaProjectÀÇ ÇÏÀ§). |
IPackageFragment | Àüü ÆÐŰÁö ¶Ç´Â ÆÐŰÁö ÀϺο¡ ÇØ´çÇÏ´Â ÀÛ¾÷°ø°£ÀÇ ÀϺθ¦ Ç¥½ÃÇÕ´Ï´Ù(IPackageFragmentRootÀÇ ÇÏÀ§). |
CompilationUnit | Java ¼Ò½º(.java) ÆÄÀÏÀ» Ç¥½ÃÇÕ´Ï´Ù( IPackageFragmentÀÇ ÇÏÀ§). |
IPackageDeclaration | ÄÄÆÄÀÏ ´ÜÀ§ÀÇ ÆÐŰÁö ¼±¾ðÀ» Ç¥½ÃÇÕ´Ï´Ù(ICompilationUnitÀÇ ÇÏÀ§). |
IImportContainer | ÄÄÆÄÀÏ ´ÜÀ§ÀÇ ÆÐŰÁö °¡Á®¿À±â ¼±¾ð¿¡ ´ëÇÑ ÄÝ·º¼ÇÀ» Ç¥½ÃÇÕ´Ï´Ù(ICompilationUnitÀÇ ÇÏÀ§). |
IImportDeclaration | ´ÜÀÏ ÆÐŰÁö °¡Á®¿À±â ¼±¾ðÀ» Ç¥½ÃÇÕ´Ï´Ù (IImportContainerÀÇ ÇÏÀ§). |
IType | ÄÄÆÄÀÏ ´ÜÀ§ ³»ÀÇ ¼Ò½º À¯ÇüÀ̳ª Ŭ·¡½º ÆÄÀÏ ³»ÀÇ 2Áø À¯ÇüÀ» Ç¥½ÃÇÕ´Ï´Ù. |
IField | À¯Çü ³»ÀÇ Çʵ带 Ç¥½ÃÇÕ´Ï´Ù(ITypeÀÇ ÇÏÀ§). |
IMethod | À¯Çü ³»ÀÇ ¸Þ¼Òµå³ª »ý¼ºÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù(ITypeÀÇ ÇÏÀ§). |
IInitializer | À¯Çü ³»ÀÇ static ¶Ç´Â ÀνºÅϽº Ãʱ⠼³Á¤ÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù(ITypeÀÇ ÇÏÀ§). |
IClassFile | ÄÄÆÄÀϵÈ(2Áø) À¯ÇüÀ» Ç¥½ÃÇÕ´Ï´Ù.(IPackageFragmentÀÇ ÇÏÀ§). |
¸ðµç Java ¿ä¼Ò´Â IJavaElement ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇÕ´Ï´Ù.
¿ä¼ÒÀÇ ÀϺδ ÆÐŰÁö º¸±â¿¡ Ç¥½ÃµË´Ï´Ù. ÀÌ·¯ÇÑ ¿ä¼Ò´Â Ž»öÇϱâ Àü¿¡ ¿¾î¾ß Çϱ⠶§¹®¿¡ IOpenable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù.¾Æ·¡ÀÇ ±×¸²Àº ÀÌ·¯ÇÑ ¿ä¼Ò°¡ ÆÐŰÁö º¸±â¿¡ ¾î¶»°Ô Ç¥½ÃµÇ´ÂÁö º¸¿©ÁÝ´Ï´Ù.
IOpenableÀ» ±¸ÇöÇÏ´Â Java ¿ä¼Ò´Â ÁÖ·Î ±âº» ÀÚ¿ø ÆÄÀÏ¿¡ ÀÖ´Â Á¤º¸¿¡¼ ÀÛ¼ºµË´Ï´Ù. µ¿ÀÏÇÑ ¿ä¼Ò´Â º¸Åë ³×ºñ°ÔÀÌÅÍ º¸±â¿¡ Ç¥½ÃµË´Ï´Ù.
±âŸ ¿ä¼Ò´Â Java ÄÄÆÄÀÏ ´ÜÀ§¸¦ ±¸¼ºÇÏ´Â Ç׸ñ¿¡ ÇØ´çµË´Ï´Ù. ¾Æ·¡ÀÇ ±×¸²Àº ¼Ò½º ¿ä¼Ò¸¦ ÄÄÆÄÀÏ ´ÜÀ§·Î Ç¥½ÃÇÏ´Â ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀÌ³Ê¿Í Java ÄÄÆÄÀÏ ´ÜÀ§ÀÔ´Ï´Ù.
ÀÌ·¯ÇÑ ¿ä¼Ò´Â ÇØ´ç ¼Ò½º Äڵ带 Á¦°øÇÒ ¼ö Àֱ⠶§¹®¿¡ ISourceReference ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¿ä¼Ò°¡ ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀ̳ʿ¡¼ ¼±ÅõǸé ÇØ´ç ¼Ò½º ÄÚµå´Â Java ÆíÁý±â¿¡ Ç¥½ÃµË´Ï´Ù.
´ëºÎºÐÀÇ Java ¿ä¼Ò´Â ÀÛ¾÷°ø°£ÀÇ ÀÏ¹Ý ÀÚ¿ø¿¡ ÇØ´çµË´Ï´Ù. ÀÏ¹Ý ÀÚ¿ø¿¡¼ Java ¿ä¼Ò¸¦ ÀÛ¼ºÇÒ ¶§ JavaCore Ŭ·¡½º°¡ ½ÃÀ۵Ǵ ÁöÁ¡ÀÔ´Ï´Ù.´ÙÀ½ ÄÚµå ½º´ÏÆêÀº ÇØ´ç ÀÚ¿ø¿¡¼ Java ¿ä¼Ò¸¦ °¡Á®¿À´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
private void createJavaElementsFrom(IProject myProject, IFolder myFolder, IFile myFile) { IJavaProject myJavaProject= JavaCore.create(myProject); if (myJavaProject == null) // the project is not configured for Java (has no Java nature) return; // get a package fragment or package fragment root IJavaElement myPackageFragment= JavaCore.create(myFolder); // get a .java (compilation unit), .class (class file), or // .jar (package fragment root) IJavaElement myJavaFile = JavaCore.create(myFile); }
Java ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì JDT API¸¦ »ç¿ëÇÏ¿© ¸ðµ¨À» ¼øÈ¸Çϰí Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. Java ¿ä¼Ò¿¡ Æ÷ÇÔµÈ ºñJava ÀÚ¿øÀ» Á¶È¸ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
private void createJavaElementsFrom(IProject myProject, IFolder myFolder, IFile myFile) { ... // get the non Java resources contained in my project. Object[] nonJavaChildren = myJavaProject.getNonJavaResources(); ...
°£´ÜÇÑ ÇÁ·ÎÁ§Æ®¿¡¼ Java ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¶§ JavaCore´Â ÇÁ·ÎÁ§Æ®°¡ Java ¼Ó¼ºÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù. JDT Ç÷¯±×ÀÎÀº ÇÁ·ÎÁ§Æ® ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Java ÀÛµ¿À» °¡Áöµµ·Ï ÇÁ·ÎÁ§Æ®¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¼Ó¼º(org.eclipse.jdt.core.JavaCore#NATURE_ID)Àº "»õ Java ÇÁ·ÎÁ§Æ®" ¸¶¹ý»ç°¡ ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¶§ ÇÁ·ÎÁ§Æ®¿¡ ÁöÁ¤µË´Ï´Ù. ÇÁ·ÎÁ§Æ®¿¡ Java ¼Ó¼ºÀÌ ±¸¼ºµÇ¾î ÀÖÁö ¾Ê´Â °æ¿ì ÇÁ·ÎÁ§Æ® ÀÛ¼ºÀ» ¿äû¹ÞÀ» ¶§ JavaCore´Â ³ÎÀ» ¸®ÅÏÇÕ´Ï´Ù.
JavaCore´Â ¼Ò½º ÄÚµå¿Í ¶óÀ̺귯¸®¸¦ ã´Â À§Ä¡¿Í Ãâ·Â 2Áø(.class) ÆÄÀÏÀ» »ý¼ºÇÏ´Â À§Ä¡¸¦ Æ÷ÇÔÇÏ¿© Java Ŭ·¡½º °æ·Î¸¦ À¯ÁöÇÏ´Â µ¥¿¡µµ »ç¿ëµË´Ï´Ù.
Java ÇÁ·ÎÁ§Æ®ÀÇ °íÀ¯ÇÑ Æ¯¼ºÀº ¹«¾ùÀԴϱî? Java ÇÁ·ÎÁ§Æ®´Â Ŭ·¡½º °æ·Î¸¦ ".classpath" ÆÄÀÏ¿¡ ±â·ÏÇϰí Java ÁõºÐ ÇÁ·ÎÁ§Æ® ºô´õ¸¦ ÇÁ·ÎÁ§Æ®ÀÇ ºôµå ½ºÆå¿¡ Ãß°¡ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì Java ÇÁ·ÎÁ§Æ®°¡ ÀÏ¹Ý ÇÁ·ÎÁ§Æ®À̹ǷΠÇ÷¯±×ÀÎÀÌ ´Ù¸¥ ¼Ó¼º ¹× ´Ù¸¥ ÁõºÐ ºô´õ·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®¸¦ °íÀ¯ÀÇ µ¿ÀÛ°ú Java ÀÛµ¿À¸·Î ±¸¼ºÇÏ´Â Ç÷¯±×ÀÎÀº NewJavaProjectWizardPage¸¦ »ç¿ëÇÏ¿© Java ¼Ó¼ºÀ» ÀÚüÀÇ »ç¿ëÀÚ Á¤ÀÇ ¼Ó¼ºÀ̳ª ÀÛµ¿»Ó ¾Æ´Ï¶ó ÇÁ·ÎÁ§Æ®¿¡µµ ÇÒ´çÇÕ´Ï´Ù.
IJavaModelÀº Java ÇÁ·ÎÁ§Æ® ¼Ó¼ºÀ» Áö´Ñ ÀÛ¾÷°ø°£ÀÇ ¸ðµç ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ »óÀ§·Î °£ÁÖÇÒ ¼ö ÀÖ½À´Ï´Ù(±×·¯¹Ç·Î IJavaProject·Î ó¸®µÉ ¼ö ÀÖÀ½).