ÀÌ Àý¿¡¼´Â Java ºôµå °æ·Î, ¿¹¸¦ µé¾î Java ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÏ´Â µ¥ »ç¿ëµÇ´Â Ŭ·¡½º °æ·Î¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. Ŭ·¡½º °æ·Î´Â ¼Ò½º ¶Ç´Â 2Áø ¾ç½ÄÀ¸·Î »ç¿ë °¡´ÉÇÑ À¯ÇüÀ» ¼³¸íÇϴ Ŭ·¡½º °æ·Î Ç׸ñÀÇ ¹è¿ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ Ç׸ñÀ» »ç¿ëÇÏ¿© »ç¿ë °¡´ÉÇÑ À¯ÇüÀ» ã½À´Ï´Ù. ÀÌ·¯ÇÑ Ç׸ñ ¼ø¼´Â »ç¿ë °¡´ÉÇÑ À¯ÇüÀÇ ¿ì¼±¼øÀ§¸¦ Á¤ÀÇÇÕ´Ï´Ù.
¶ÇÇÑ Java ºôµå °æ·Î´Â ¸ðµç ÆÐŰÁö ´ÜÆí ·çÆ®°¡ Java ºôµå °æ·Î¿¡¼ Á÷Á¢ À¯·¡µÇ¹Ç·Î Java ÇÁ·ÎÁ§Æ® ¿ä¼ÒÀÇ ±¸Á¶¸¦ °áÁ¤ÇÕ´Ï´Ù(Çϳª ÀÌ»óÀÇ ÆÐŰÁö ´ÜÆí ·çÆ®¿¡ ´ëÇÑ Ç׸ñ ¸ÊÇÎÀº getPackageFragmentRoots¸¦ ÂüÁ¶ÇϽʽÿÀ).
ÀÌ Àý¿¡¼´Â º°µµ·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Â Java ·±Å¸ÀÓ °æ·Î¿¡ ´ëÇØ¼´Â ´Ù·çÁö ¾Ê½À´Ï´Ù. Java ÇÁ·Î±×·¥ ½ÇÇà ¹æ¹ý¿¡ ´ëÇÑ °ü·Ã ÀýÀ» ÂüÁ¶ÇϽʽÿÀ.
ÇØ´ç ÇÁ·ÎÁ§Æ®ÀÇ Java ¿ä¼Ò¿¡
setRawClasspath¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®ÀÇ ºôµå °æ·Î¸¦ ÇÁ·Î±×·¡¹ÖÇÏ¿© º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
IProject project = ... // get some project resource
IJavaProject javaProject = JavaCore.create(project);
IClasspathEntry[] newClasspath = ...;
javaProject.setRawClasspath(newClasspath, someProgressMonitor);
Java ºôµå °æ·Î¿Í ÇÁ·ÎÁ§Æ® Ãâ·Â À§Ä¡¸¦ µ¿½Ã¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ°Ô ÇÏ´Â setRawClasspathÀÇ º¯Çüµµ
¶ÇÇÑ ÀÖ½À´Ï´Ù.
Java ºôµå °æ·Î´Â ÇÁ·ÎÁ§Æ® À§Ä¡ ¾Æ·¡ '.classpath'¶ó´Â ÆÄÀÏ¿¡ °è¼Ó ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀÇ ¸ñÀûÀº ÀϺΠ¼Ò½º ÄÚµå ÀúÀå¼Ò¸¦ ÅëÇØ ´Ù¸¥ »ç¿ëÀÚ¿Í Java ºôµå °æ·Î ¼³Á¤À» °øÀ¯ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. ƯÈ÷ ÀÌ ÆÄÀÏÀº Á÷Á¢ ÆíÁýÇÏÁö ¸¶½Ê½Ã¿À. ¼Õ»óµÉ ¼ö ÀÖ½À´Ï´Ù.
Ŭ·¡½º °æ·Î Ç׸ñÀº ´ÙÀ½À» ÂüÁ¶ÇÏ¿© JavaCore¿¡ Á¤ÀÇµÈ ÆÑÅ丮 ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î, ÇÁ·ÎÁ§Æ® 'MyProject'ÀÇ ¼Ò½º Æú´õ 'src'¸¦ ¼±¾ðÇÏ´Â Ç׸ñ:
IClassPathEntry srcEntry = JavaCore.newSourceEntry(new Path("/MyProject/src");
¿¹¸¦ µé¾î, 'MyProject'ÀÇ Å¬·¡½º ÆÄÀÏ Æú´õ 'lib'¸¦ ¼±¾ðÇÏ´Â Ç׸ñ:
IClassPathEntry libEntry = JavaCore.newLibraryEntry(
new Path("/MyProject/lib"),
null, //no source
null, //no source
false); //not exported
¼Ò½º ÷ºÎ°¡ ÀÖ´Â ¿ÜºÎ JARÀ» ¼±¾ðÇÏ´Â Ç׸ñ:
IClassPathEntry libEntry = JavaCore.newLibraryEntry(
new Path("d:/lib/foo.jar"), // library location
new Path("d:/lib/foo_src.zip"), //source archive location
new Path("src"), //source archive root path
true); //exported
¿¹¸¦ µé¾î, ³ªÁß¿¡ Á¾¼Ó ÇÁ·ÎÁ§Æ®·Î ¾Ï½ÃÀûÀ¸·Î ³»º¸³»´Â ÀüÁ¦Á¶°Ç ÇÁ·ÎÁ§Æ® 'MyFramework'¸¦ ¼±¾ðÇÏ´Â Ç׸ñÀº ´ÙÀ½°ú °°½À´Ï´Ù.
IClassPathEntry prjEntry = JavaCore.newProjectEntry(new Path("/MyFramework"), true); //exported
¿¹¸¦ µé¾î, º¯¼ö 'HOME'À» »ç¿ëÇÏ¿© °£Á¢ÀûÀ¸·Î ÂüÁ¶µÇ´Â ¶óÀ̺귯¸®¸¦ ¼±¾ðÇÏ´Â Ç׸ñ. ¼Ò½º ÷ºÎµµ º¯¼ö 'SRC_HOME' ¹× 'SRC_ROOT'¸¦ »ç¿ëÇÏ¿© ÂüÁ¶µË´Ï´Ù.
IClassPathEntry varEntry = JavaCore.newVariableEntry(
new Path("HOME/foo.jar"), // library location
new Path("SRC_HOME/foo_src.zip"), //source archive location
new Path("SRC_ROOT"), //source archive root path
true); //exported
JavaCore.setClasspathVariable("HOME", new Path("d:/myInstall"), null); // no progress
¿¹¸¦ µé¾î, ½Ã½ºÅÛ Å¬·¡½º ¶óÀ̺귯¸® ÄÁÅ×À̳ʸ¦ ¼±¾ðÇÏ´Â Ç׸ñÀº ´ÙÀ½°ú °°½À´Ï´Ù.
IClassPathEntry varEntry = JavaCore.newContainerEntry(
new Path("JDKLIB/default"), // container 'JDKLIB' + hint 'default'
false); //not exported
JavaCore.setClasspathContainer(
new Path("JDKLIB/default"),
new IJavaProject[]{ myProject }, // value for 'myProject'
new IClasspathContainer[] {
new IClasspathContainer() {
public IClasspathEntry[] getClasspathEntries() {
return new IClasspathEntry[]{
JavaCore.newLibraryEntry(new Path("d:/rt.jar"), null, null, false);
};
}
public String getDescription() { return "Basic JDK library container"; }
public int getKind() { return IClasspathContainer.K_SYSTEM; }
public IPath getPath() { return new Path("JDKLIB/basic"); }
}
},
null);
¶ÇÇÑ getResolvedClasspath¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®ÀÇ ºÐ¼®µÈ Ŭ·¡½º °æ·Î¸¦ Á¶È¸ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ Á¶ÀÛÀº ÇÊ¿äÇÑ °æ¿ì °ü·ÃµÈ º¯¼ö ¹×/¶Ç´Â ÄÁÅ×À̳ÊÀÇ Ãʱâȸ¦ Æ®¸®°ÅÇÕ´Ï´Ù. ¸¹Àº Java ¸ðµ¨ Á¶ÀÛÀº ¾Ï½ÃÀûÀ¸·Î Java ºôµå °æ·Î¸¦ ºÐ¼®Çϵµ·Ï ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÇÁ·ÎÁ§Æ® ÆÐŰÁö ´ÜÆí ·çÆ®¸¦ °è»êÇÒ °æ¿ì ºôµå °æ·Î¸¦ ºÐ¼®ÇØ¾ß ÇÕ´Ï´Ù.