Built java class 不代表更改

Built java class not representing changes

警告:我不是 Java 也不是 Eclipse 专家!

我在 Eclipse 中继承了一个 Java 项目。我对多个 java 文件进行了更改。这样做并保存文件后,我 运行 一个名为 set_javac.bat 的文件(也是继承的)。这是该文件的编辑版本:

set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_85

rem set JAR_HOME="D:\Cognos\cognos_version\sdk\java\lib"
set JAR_HOME="D:\code\lib"

set JAVAC=%JAVA_HOME%/bin/javac

set PATH=%JAVA_HOME%/bin
rem Create the Classpath

set CLASSPATH=
set CLASSPATH=%CLASSPATH%;%JAVA_HOME%/lib/tools.jar

rem Compile Java files

运行宁这个文件后,我然后 运行 build.bat (也继承 - 编辑):

@echo off

rem Licensed Materials - Property of IBM
rem 
rem IBM Cognos Products: CAMAAA
rem 
rem (C) Copyright IBM Corp. 2005, 2012
rem 

rem  Copyright © 2008 Cognos ULC, an IBM Company. All Rights Reserved.
rem  Cognos and the Cognos logo are trademarks of Cognos ULC (formerly Cognos Incorporated).

rem Build Java files in directory TestSample

echo Building TestSample

rem Build the CLASSPATH required to build Java files in the directory TestSample

set _CLASSPATH=D:\code\lib\CAM_AAA_CustomIF.jar;D:\code\adapters;D:\Cognos\cognos_version\webapps\p2pd\WEB-INF\lib\ojdbc6.jar;D:\code\lib\axis.jar;D:\code\lib\jaxrpc.jar

rem Compile Java files
javac -Xlint:unchecked -classpath %_CLASSPATH% -d . *.java

rem Create jar file
jar cfm0 CAM_AAA_TestSample.jar MANIFEST *.class

echo done

这两个 .bat 文件 运行 没有错误。新的 .class 文件在与其 .java 文件相同的目录中创建。还创建了一个新的 CAM_AAA_TestSample.jar 文件。然而,当 .jar 文件被放置在正确的位置并且 Cognos 服务重新启动并且我检查日志文件时,我没有看到我所做的更改。具体来说,我更改了日志消息(例如):

thisfile: init

到...

thisfile.java -> init: Entered function

但是当我打开日志文件时,我看到新消息(date/time 标记)仍然是旧格式。我做错了什么?

如果您需要有关设置的更多详细信息,请告诉我,我会尽我所能。我们使用 Eclipse 来管理工作区并使用 "intellisence",但我们不使用它进行构建。非常感谢您提供的任何信息。

可以在您的 class 路径上的多个 class 文件或 jar 文件中定义 class。发生这种情况时,JVM 会选择一个使用 - 我很确定它是第一个遇到的文件,顺序是 class 路径中列出的文件。

我的猜测是你有这样的情况,你正在替换包含旧 class 定义的 a jar 文件,但 JVM 实际上使用的是class 路径上其他文件的定义。从您的评论看来,这或多或少是正确的。