构建的java类不代表更改

时间:2017-02-08 16:57:56

标签: java cognos-bi

警告:我不是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

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

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

1 个答案:

答案 0 :(得分:0)

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

我的猜测是你遇到了这样的情况并且你正在替换包含旧类定义的一个 jar文件,但是JVM实际上正在使用类路径中其他文件的定义。从您的评论看起来这或多或少是正确的。