2017-04-05 16 views
2

サービスを再起動せずに簡単に.jarを簡単に展開できるかどうかは疑問です。私はいくつかの異なる投稿を見つけましたが、少し古くて、JavaLoaderというライブラリを使って言及しています。Programmatic reloading of Java JARs without restarting ColdFusionこれに代わる方法はありますか?私はjava sdkを使って開発しており、毎回の変更後に再起動を続けるのは非常に時間がかかるので、これを達成するためにライブラリを使用しない方がよいでしょう。サービスを再起動せずに簡単に.jarファイルを展開する

編集:私はLuceeについて

+0

あなたが実行しているフレーバー(AdobeまたはLucee)と実行しているバージョンは何か言いたいことがあります。これは、javaloader.create()でクラスを呼び出すときに使用します。私はそれがAdobe ColdFusion 10で、JARファイルを動的に読み込む機能を導入したと信じています(ただしデフォルトではありません) - [ColdFusionでのJavaの高度な統合](https://helpx.adobe.com/coldfusion/developing-applications/using-web -elements-and-external-objects/integration-jee-and-java-elements-cfml-applications/enhanced-java-integration-in-coldfusion.html)(注意: 'reloadOnChange'属性に注意してください) –

+0

@ Miguel-F更新された詳細 – Yamaha32088

+0

Luceeでは、Application.cfcの 'javasettings'プロパティを使ってjarファイルを読み込んで変更を検出することもできますが、[bug](https://luceeserver.atlassian.net/browse/LDEV -800)にLuceeの 'reloadOnChange'属性を指定します。 – CfSimplicity

答えて

4

Lucee 5.2を使用しています、にJavaLoaderを移動するための方法です。 https://github.com/markmandel/JavaLoader。ライブラリは少し古いかもしれませんが、ColdFusionもそうです。 Javaloaderは本当にうまく動作し、置換えが不要なため、置換されていません。開発者のMark Mandelは、現在Googleのために働く非常にスマートな人です。あなたは彼が何であるかをhttps://twitter.com/Neuroticに見ることができます。

Javaloaderは、設定方法を理解すれば使いやすいです。 Javaライブラリへの一連のパスを受け入れます。

jars = [ expandPath("/classes/mypackage.jar") ]; 
javaloader = createObject("component", "javaloader.JavaLoader").init(sourceDirectories = jars); 
myclass = javaloader.create("myclass").init(); 
+0

私は本当にライブラリを使いたくはありませんでしたが、コードベースのいくつかの場所で既に使用していることがわかりましたので、これが私にとって最高の答えです。 – Yamaha32088

+0

JavaLoaderは優れており、非常に効果的です。私はあなたが最新バージョンを使用していることを確認することをお勧めします(1.2) – CfSimplicity

関連する問題