Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Monday, March 12, 2012

Java Jar Run Cmd

Anahtar kelimeler: java jar cmd komut satırı çalıştırmak windows bat batch

Bir java projesi yazdınız diyelim. Bunu derlediğinizde de bir tane .jar dosyası oluşturuyor olsun. JAR'ın içindeki bir sınıfı (main methodunu) bir parametre ile çağırmak isterseniz şunu yapmalısınız,


java -cp Demo1.jar cglcgl.Sinif1 miyav


Burada gönderilen parametre "miyav" oluyor. Bunu Windows ortamında bir batch (BAT) dosyası ile yapmak isteyebilirsiniz. Örnek dosya adı deneme.bat olsun, içeriği şu şekilde olmalı;


@echo off
d:
cd d:\projects\demo1\dist
java -cp Demo1.jar cglcgl.Sinif1 %1


deneme.bat dosyasındaki %1'in özelliği, bat'a ilk gelen parametrenin yerine geçmesidir. Yani yukarıdaki örnek için "deneme.bat miyav" yazarsak, alacağımız çıktı "java -cp Demo1.jar cglcgl.Sinif1 miyav" dememiz ile aynı olacaktır.

Ekran görüntülerinde örnek sınıf ve çıktılar, deneme.bat dosyasının yapısı görülmektedir.



Umarım birilerinin işine yarar (:

Friday, February 24, 2012

2 Dimension Set in Java

2 Dimension Set in Java
Simple stuff, just a tutorial.

import java.util.HashMap;

class Trial {

public static void main(String[] args) {
System.out.println("*** start ***");

try {

HashMap<Integer, HashMap<Integer, String>> mapHolder =
new HashMap<Integer, HashMap<Integer, String>>();

HashMap<Integer, String> tmpMap1 = new HashMap<Integer, String>();
tmpMap1.put(1, "Judy");
tmpMap1.put(2, "Caty");

HashMap<Integer, String> tmpMap2 = new HashMap<Integer, String>();
tmpMap2.put(1, "John");
tmpMap2.put(2, "Charles");
tmpMap2.put(3, "Mike");

mapHolder.put(1, tmpMap1);
mapHolder.put(2, tmpMap2);

System.out.println("2nd of the 2nd : " + mapHolder.get(2).get(2)); // Charles

} catch (Exception e) {
e.printStackTrace();
}

System.out.println("*** end ***");
}
}

http://pastebin.com/uh6Gy8iS

Monday, June 06, 2011

Web Application Developing on JBoss, Netbeans and Maven

Jsp sayfalarındaki değişimleri gerçek zamanlı olarak görebilmek için, JBoss'a uygulamaların açık (exploded) olarak deploy edilmesi gerekiyor. Ancak JBoss'un deploy dizini ile NetBeans'in derlediği Maven projesi /target/ dizini malesef aynı değil. JBoss üzerinde de, Weblogic'teki gibi "I will make the deployment accessible from the following location." opsiyonu olmadığından; bu sorunun üstesinden gelmek için Windows'un symbolic link yapısını kullanmak işe yarayabilir. Symbolic Link oluştururken dikkat edilecek husus, klasörün isminin .war şeklinde bitmesi. Böylece JBoss deploy dizinini tararken, bu "hede.war" ismindeki klasörün, açık durumda bulunan bir web application olduğunu anlıyor. Şöyle ki;

D:\>cd D:\jboss\server\default\deploy
D:\jboss\server\default\deploy>mklink /D deneme.war D:\svn\deneme-web-app\trunk\target\deneme

Böylece IDE'nizde 1 harfini değiştirdiğiniz Jsp sayfanız, anında target dizinine gönderiliyor, JBoss da bunu okuyarak değişimleri exploded deploy edilmiş war'unuza yansıtıyor. IDE üzerinde yaptığınız değişikliği zahmetsizce (tekrar clean & deploy, target dizinini aç, kopyala, JBoss deploy dizinine war at vs yapmadan), sadece tarayıcıdan F5 yaparak görmek çok güzel.

Niye İngilizce başlık yazdım bilmiyorum.

Friday, November 12, 2010

IntelliJ IDEA ve JavaDoc Türkçe UTF-8 Ayarı

Merhaba,

Bölge ayarınız (Regional Settings) Türkiye/Türkçe ise IntelliJ IDEA 8+ kullanırken JavaDoc oluşturmada sorun yaşayabiliyorsunuz. Türkçe karakter içeren notlarda ve Interface'lerde hatalar alınıyor.

Generating C:\Users\cagri.celebi\Desktop\ab\index-files\index-1.html...
java.util.MissingResourceException: Can't find resource for bundle com.sun.tools.doclets.internal.toolkit.resources.doclets, key doclet.ınterface
at java.util.ResourceBundle.getObject(ResourceBundle.java:384)
...
javadoc exited with exit code 1

Büyük I'yı küçük i yerine küçük ı yaptığı için "ınterface" isminde (olmayan) bir nesne tipi yapmaya çalışıyor sanıyorum, neyse sallamayayım şimdi onları.

Söz konusu sorunları aşmak için javadoc oluştururken dil için İngilizce ("en" veya "en_US") ve Karakter kodlaması için de "utf-8" demeniz gerekiyor. Onu da command line parameter olarak
-locale en_US -charset "UTF-8"
ile veriyorsunuz. Arayüzden yaparken şu şekilde ayarlayabilirsiniz.



IntelliJ dedim ama diğer ideler de JavaDoc.exe kullanarak bunu oluşturuyorsa benzer ayarlar yapılabilir.

Kolay gelsin.

Konu ile uzaktan ilgisi olan bir başka post daha var, ilginizi çekebilir;
Oracle Weblogic'i Regional Settings en-US Yapmadan Çalıştırmak

Wednesday, June 16, 2010

Oracle Weblogic'i Regional Settings en-US Yapmadan Çalıştırmak

Oracle Weblogic Server Türkçe/Türkiye ortamında çalışmamak konusunda oldukça inatçı. Weblogic'i localda çalıştırırken Dil/ülke ayarları sebebiyle benim yaşadığım sıkıntıları yaşayan varsa aşağıdakilerin yardımı olabilir.

Regional Settings'i en-US yapmadan weblogic'i localda çalıştırmak için;
(localinizdeki weblogic'in adının base_domain olduğunu varsayıyorum)
D:\oracle\Middleware\user_projects\domains\base_domain\bin\setDomainEnv.cmd


Dosyasını açın orada JAVA_PROPERTIES tanımını bulun.
set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%


Bende bu şekilde. Sonra onun sonuna "-Duser.language=en -Duser.region=US" parametrelerini ekleyin; yani şu hale gelecek;
set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME% -Duser.language=en -Duser.region=US

Böylece java çalıştırılırken Windows'tan Regional Settings çekilmiyormuş.

Bir de Weblogic galiba default olarak 4 threade izin veriyor. Bu yüzden BEA-000402 (There are: 5 active sockets, but the maximum number of socket reader threads allowed by the configuration is: 4. You may want to alter your configuration.) hatası ile karşılaşılması olası. Bunu engellemek, yani max thread sayısını yükseltmek için ayar satırına aşağıdakileri ekleyin:
 -XX:NewSizeThreadIncrease=100 -Dweblogic.ThreadPoolPercentSocketReaders=50 -Dweblogic.ThreadPoolSize=100 -Dweblogic.SelfTuningThreadPoolSizeMin=100


NetBeans veya Eclipse gibi bir IDE kullanıyorsanız ve Weblogic'inizde debug yapmak istiyorsanız, aynı satırın sonuna aşağıdakileri ekleyin. JPDA ayarları için bunu yaparsanız IDE'niz Weblogic'inizle haberleşebilir. Sadece Weblogic için değil, herhangi bir Java EE uygulama sunucusuna bu ayarı ekleyebilirsiniz.
 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n


Sunucu çıktı dosyalarını da değiştirmek için de, "WLS_REDIRECT_LOG" yazan satırı bulun, onun yukarısına aşağısına bir şeyler ekleyip şu hale getirin:
@REM START WEBLOGIC


echo starting weblogic with Java version:

%JAVA_HOME%\bin\java %JAVA_VM% -version
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
if "%WLS_REDIRECT_LOG%"=="" (
echo Starting WLS with line:
echo %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS% >d:\var\log\weblogic\weblogic.%mydate%_%mytime%.out.txt 2>d:\var\log\weblogic\weblogic.%mydate%_%mytime%.err.txt
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS% >d:\var\log\weblogic\weblogic.%mydate%_%mytime%.out.txt 2>d:\var\log\weblogic\weblogic.%mydate%_%mytime%.err.txt
) else (
echo Redirecting output from WLS window to %WLS_REDIRECT_LOG%
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS% >"%WLS_REDIRECT_LOG%" 2>&1
)





NetBeans için benzeri sıkıntı yaşarsanız,
D:\Program Files\NetBeans 6.7.1\etc\netbeans.conf


Dosyasında netbeans_default_options satırını bulun ve sonuna " --locale en:US" ekleyin. Ek olarak oluşturulacak tüm yeni dosyaların utf-8 olarak tanımlanması için de " -J-Dfile.encoding=UTF-8" değerini ekleyebilirsiniz.
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-Dfile.encoding=UTF-8 --locale en:US"






JBoss AS için benzeri sıkıntı yaşarsanız,
D:\jboss\bin\run.conf.bat


Dosyasında Java ayarlarının yapıldığı satırları bulup, araya bir yere şunu ekleyin;

set "JAVA_OPTS=%JAVA_OPTS% -Duser.language=en -Duser.region=US -Dfile.encoding=utf8"

Bunu yapmazsanız JBoss Admin Console "testplatform" diye açılıyor ve hiçbir şeyi değiştirmeye izin vermiyor. Ben bu testplatform sorununu bu şekilde çözdüm.

Umarım sizin de işinize yarar :3


Friday, June 11, 2010

toProperCase

A simple recursive function to produce proper case outputs. This method simply takes input like "REAL MADRID" and returns "Real Madrid".


public static String toProperCase(String name) {
if (name.length() == 0) {
return "";
}
if (name.contains(" ")) {//multi worded input
String[] names = name.split(" ");
name = "";
for(int i=0; i<names.length;i++){
name = name + toProperCase(names[i]) + " ";//adds blank between each word
}
return name.substring(0,name.length()-1);//deleted blank in the end
} else {
return name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase(Locale.ENGLISH);
}
}