2010-06-09 18 views
5

JVM seçenekleri ve sınıf yolu seçeneği dahil, bir Java programında Java'ya aktarılan komut satırı argümanlarının yeniden yapılandırılmasının bir yolu var mı?Java komut satırı argümanlarının yeniden yapılandırılması

JVM'yi yeniden başlatması ve bootclasspath'ını (yani bazı sistem sınıflarını geçersiz kılmaya çalışmak) gereken bir Java programım var. Yeni JVM'yi çağırmak için libcsystem yöntemini kullanıyorum.

Daha iyi yaklaşımlara açığım ancak Java aracıları bir seçenek değil.

+0

Burada yapmaya çalıştığımız şeyi gerçekten merak ediyorum ... – alex

+0

'ps -xxx' kullanılabilir mi? – trashgod

+0

@trashgod, hayır ben yükleme talimatlarını azaltılması ile, bir eklenti ortamında bazı (küçük) Java 7 özgü özellikleri almaya çalışıyorum, yeniden – notnoop

cevap

1

Neden bu özelliklere sahip bir dosyayı Eclipse ini dosyası ve NetBeans conf dosyaları gibi kullanmayın. Bu şekilde, sadece bu özellikleri okuyor ve yeni Java sürecini bu özelliklerle üretiyorsunuz.

geri Sorunuzun

, bu önceki answer Ben bootclasspath ile futzing genellikle zayıf bir fikir olduğuna

+0

Teşekkürler! 'RuntimeMZBean.getInputArguments()' sorunu oldukça iyi çözüyor. – notnoop

-1

Err ... runtime tam çekirdek java sınıfını değiştirmek çok çok kötü bir fikir.

Alt sınıfla ilgili sorun nedir? Harici bir kütüphaneyi değiştirmeye, işlevsellik eklemeye mi yoksa tembel mi olmaya çalışıyorsunuz?

+0

Neden düşüş var? – TheLQ

+0

İnternete Hoş Geldiniz, arkadaş. –

0

yapmalıdır. Fakat ...

"java.c" için kod - java.exe'ye derleyen C programı. Bir JVM oluşturmak ve ana yöntemi çağırmak için JNI Invocation API'sini kullandığını göreceksiniz. Belirli çıkış kodlarını vb. Aramak için bunu değiştirebilir ve yeniden derleyebilirsiniz. Gerekirse JVM'yi çevreleyin ve yeniden başlatın.

Alternatif olarak, Eclipse (ya da en azından için kullanılır) yapar, ancak bir Java programı bir alt işlem, (a sahne dosya, vs.) komutu dizisi yapılabilir ve başlatmak zorunda. Yine, alt süreç çıkış kodunu bağladı ve yeni bir alt süreci yeniden başlatıp başlatmamaya karar vermek için kullandı.

İlgili konular