2017-02-08 19 views
1

警告:私はJavaやEclipseのエキスパートです。ビルドされたJavaクラスは変更されていません

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を使用してワークスペースを管理し、 "インテリジェンス"を使用しますが、我々はそれを使ってビルドしません。あなたが提供できる情報は本当に感謝しています。

+0

このjarファイルは、クラスパス上の複数の場所に存在しますか?実際に使用されているものを置き換えるのではないでしょうか? – Brick

+0

現時点で私は正直には知りませんが、私はそう信じていません。 Sys Adminsが私が作成した新しいファイルで "作業中の"ファイルを置き換えると、それが組み込まれたディレクトリのものと同じタイムスタンプを持っていることを確認します。 – XstreamINsanity

+0

私はいくつかのクラス定義が2つの場所に現れることを起こしました。その後、JVMが最初に検出します。 「作業中の」ファイルは、あなたが思うものではないかもしれません。しかし、ここからは難しい。ちょっとした考え。 – Brick

答えて

0

クラスパスに複数のクラスファイルまたはjarファイルで定義されたクラスを持つことは可能です。これが起きると、JVMは使用するものを選択します。クラスパスにリストされているファイルを順番に見つけたのは初めてです。

私の推測では、このようなケースがあって、置き換えようとしていたのですが、 jarファイルには古いクラス定義が含まれていましたが、JVMはクラスパス上の他のファイルの定義を使用していました。あなたのコメントから、これは多かれ少なかれ正しいと思われます。

関連する問題