你的代码看起来不错。如果您在运行时遇到异常,则应该将其包含在您的问题中。XML 看起来也很好,除了您排除了前几行和最后一行(这是故意的还是您的 XML 真的缺少这些行?)。这是我的 XML:
<?xml version="1.0"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<scxml xmlns="http://www.w3.org/2005/07/scxml"
version="1.0"
initial="reset">
<state id="reset">
<transition event="watch.start" target="running"/>
</state>
<state id="running">
<transition event="watch.split" target="paused"/>
<transition event="watch.stop" target="stopped"/>
</state>
<state id="paused">
<transition event="watch.unsplit" target="running"/>
<transition event="watch.stop" target="stopped"/>
</state>
<state id="stopped">
<transition event="watch.reset" target="reset"/>
</state>
</scxml>
至于将 XML 文件放在哪里,通常您会将其放在 SRC 目录中。当 Eclipse 进行构建时,它不知道如何处理 XML 文件,因此它的默认行为是将其复制到编译代码所在的 BIN 目录。你可能需要做一个Project > Clean...
来实现这一点。这是运行时环境通常期望找到这样的资源的地方。
这里有一个非常好的技巧:如果您在任何版本的 Windows 上进行开发,您可以访问 Microsoft 非常棒的 Sysinternals 站点 ( http://technet.microsoft.com/en-US/sysinternals )。在这里您可以找到出色的 Process Monitor 实用程序。下载、安装和运行这个免费的实用程序。在实用程序中,创建一个进程监视器过滤器:Path | contains | stopwatch.xml
确保启用此过滤器并禁用所有其他(预定义)过滤器。
然后运行你编译的秒表程序。该实用程序将显示应用程序(以及其中包含的所有类加载器)查找的每个位置stopwatch.xml
。
然后,您可以移动/复制/任何文件,以确保它位于应用程序查找文件的位置。此实用程序对于编写 J2EE 应用程序(例如 Tomcat、Websphere 等)时出现的类似“我找不到资源”问题特别方便。
最后,虽然您没有提及任何有关依赖 jar 文件的内容,但请确保它们位于类路径中:
commons-beanutils-1.9.2.jar
commons-digester-2.1.jar
commons-jexl-1.1.jar
commons-logging-1.2.jar
commons-scxml-0.9.jar
log4j-1.2.17.jar
xalan.jar