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 路径上其他文件的定义。从您的评论看来,这或多或少是正确的。
警告:我不是 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 路径上其他文件的定义。从您的评论看来,这或多或少是正确的。