私は次の「Beans.xml」を持っています。'src'フォルダーの日食にあります。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="user1" class="rc.User">
<property name="name" value="joe" />
</bean>
</beans>
私は次のJavaアプリケーションを持っています:
package rc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Asparagus
{
public static void main (String[] arguments)
{
ApplicationContext context = null;
try
{
context = new ClassPathXmlApplicationContext("Beans.xml");
}
catch (ExceptionInInitializerError eiie)
{
System.out.println(eiie);
}
System.out.println("hi");
User u = context.getBean("user1", User.class);
System.out.println("hi2");
System.out.println(u);
}
}
これは、Eclipseの「src」フォルダー内の「rc」パッケージにあります。私はUserBeanクラスを持っています、私はそれを含めたほうがいいと思います:
package rc;
public class User
{
public User() {}
public String name;
public String getName() {return name; }
public void setName(String name) {this.name = name; }
}
そして、これを実行すると、FileNotFoundExceptionが発生します。私が考えられる唯一のファイルは私のXMLファイルですが、なぜ問題が発生するのか理解できません。
DOSを使用してディレクトリ構造を調べ、「Beans.xml」がsrcとbinの両方でアプリケーションのクラスパスのルートにあることを確認しました。これは、Asparagusクラス(「Main」と呼ばれることに反対する人)が見つかり、実行を開始するという事実によって確認されたと思います。これは、src/binがクラスパスルートでない場合はeclipseでは実行できませんでした。
私は最近、他の誰かのアドバイスでライブラリの混乱を含めましたが、この問題はなくなり、(StackOverflowで)jarがシステムライブラリとしてeclipseに含まれていることが原因であることがわかったので、 Javaランタイムを除くすべてのシステムライブラリ。
私は本当に、彼らが何をすべきかについて何も知らずに、たくさんのライブラリを追加することによってこれを解決したくないと思います。誰かがここで何が起こっているのか、そしてなぜ提案された解決策が物事を修正するのかを説明できますか?