IntelliJ IDEA'da bir uygulama çalıştırma profilinde sınıfyoluna dizin nasıl eklenir?


206

Bir uygulama çalıştırma profilinin sınıfyoluna bir dizin eklemeye çalışıyorum

VM ayarlarında -cp x: target / classes kullanarak geçersiz kılınırsam, aşağıdaki hatayı alıyorum:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

Projem için sınıfyoluna nasıl bir dizin ekleneceği hakkında bir fikriniz var mı?


1
Bunu eklemeye çalıştığınız benim için net değil. IJ komut satırından mı? Veya proje özelliklerinde?
Heiko Rupp

Yanıtlar:


271

Intellij 13'te, yine biraz farklı görünüyor. İşte Intellij 13 için talimatlar:

  1. Proje görünümünü tıklayın veya pencerenin sol kenarındaki "1: Proje" düğmesini tıklayarak veya Alt + 1 tuşlarına basarak gösterin
  2. projenizi veya alt modülünüzü bulun ve vurgulamak için tıklayın, ardından F4'e basın veya sağ tıklayın ve "Modül Ayarlarını Aç" ı seçin (IntelliJ 14'te F12 oldu)
  3. bağımlılıklar sekmesini tıklayın
  4. Sağdaki "+" düğmesini tıklayın ve "Kavanozlar veya dizinler ..." i seçin
  5. Yolunuzu bulun ve Tamam'ı tıklayın
  6. "Seçilen Dosya Kategorilerini Seçin" iletişim kutusunda Classes(özellikleri olsa bile) öğesini seçin, Tamam ve Tamam düğmesine tekrar basın
  7. Artık uygulamanızı çalıştırabilirsiniz ve sınıf yolunda seçilen yol olacaktır

2
Öyleyse, yalnızca birinde bulunması gereken, ancak diğerinde bulunmaması gereken iki farklı dizinle yapılandırmaları çalıştırmak için nasıl oluşturursunuz? Tutulmada, başlatma yapılandırmasına herhangi bir şey ekleyebilir / kaldırabilirsiniz. IntelliJ bunu desteklemiyor mu?
Καrτhικ

9
Çalıştırma yapılandırması değişen modül sınıfyolunun sınıfyolunu değiştirebileceğiniz oldukça açıktır . Ancak asıl soru "bir uygulama çalıştırma profilinde sınıfyoluna nasıl dizin ekleneceği " idi. Yani gerçek uaaquarius tarafından verildi
Pavel Vyazankin

Teşekkür ederim ! Bu, etrafta arama çağından sonra sorunumu çözdü!
JonasCz - Monica'yı eski durumuna getirin

1
Adım 6 benim için gelmiyor. Intellij 14'dayım. .Jar dosyamın bulunduğu lib adlı bir klasörüm var. klasör veya kavanoz seçilmesi, intellij yolunu ayrıştırır. hala çalışmıyor
Takeru

@Takeru Bunu anladın mı?
Rosshamish

92

IntelliJ 11'in yöntemi değiştirdiği anlaşılıyor ve kontrol edilen cevap artık benim için çalışmıyor. Başka birinin buraya bir arama motoru aracılığıyla gelmesi durumunda, IntelliJ 11'de bunu nasıl çözdüm:

  1. Proje Yapısına gidin, Modüller'e tıklayın ve Modülünüze tıklayın
  2. "Bağımlılıklar" sekmesini seçin
  3. Sağ taraftaki "+" düğmesini tıklayın ve "Kavanozlar veya dizinler ..." i seçin.
  4. İstediğiniz dizini / dizinleri ekleyin (çoklu seçim yapabileceğinizi unutmayın) ve Tamam'ı tıklayın.
  5. Açılan iletişim kutusunda "sınıflar" ve "jar dizini" DEĞİL seçin
  6. Bu Modülü çalıştırma hedefinizde kullandığınızdan emin olun

5. adımın önemli fark olduğunu unutmayın. "Jar dizini" seçeneğini belirlerseniz, IDE'de tam olarak aynı görünür ancak çalışma zamanında yolu içermez. Bu olaydan sonra daha önce "sınıflar" veya "jar dizini" seçip seçmediğinizi belirlemenin bir yolu yoktur.


4
Bunu yayınladığınız için çok teşekkür ederim. Beni bir saat kadar kurtardın.
John Jiang

IJ11 ile aynı problemim var ve bu sefer beni bekleyen bir cevap bulmaktan mutluluk duydum.
sal

Mükemmel. Aynı süreç IJ12 için. 'Java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver' sorununu çözmeye çalışırken bu yayına rastladınız. Bu bağlantı sorununu çözdü. Teşekkürler
jkmurphy1 21:13

6
5. adımı alamadım :( Diyalog gelmiyor.
Charles Wood

1
@CharlesWood: Biri alt klasör içeren iki klasör seçmek istediğimde. İletişim kutusunun görünmesi için alt klasörleri içeren klasörü klasör adının yanındaki küçük ok simgesiyle genişletmek zorunda kaldım. Aksi takdirde, iletişim kutusu atlanır.
Timo Reimann

35

Java uygulama başlatıcısının -Xbootclasspath / a: yol seçeneğini deneyebilirsiniz . Açıklama olarak, "varsayılan bootstrap sınıf yoluna eklenecek iki nokta üst üste işaretli direklerin, JAR arşivlerinin ve ZIP arşivlerinin yolunu" belirtir.


2
-Xbootclasspath'in nasıl çalıştığına dair bazı belgeler: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart

3
Bu, proje yapılandırmanızı değiştirmenizi gerektirmediği için iyi bir yanıttır. Aslında bu sorunun en iyi yanıtı verdiğini düşünüyorum.
17'de Chewy

1
Bu maalesef benim için işe yaramadı, çünkü bu, sınıf yolundan yüklenen tüm sınıfların, Xyz.class.getClassLoader () öğesinin boş olmadığını varsayan kodu kıran bootstrap sınıf yükleyicisi tarafından yüklenmesine neden olur.
Njol

@uaaquarius, Neden komut satırı dizesini doğrudan düzenlemenin bir yolu yok? Bu sinir bozucu.
Pacerier

@uaaquarius, stackoverflow.com/a/16742141/632951mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar adresindeki diğer yöntemi kullanarak bağımlılık olarak eklersem neden işe yarıyor ? -Xbootclasspath/a
Pacerier

19

Modül bağımlılık sekmenizde (proje yapısı iletişim kutusunda) Fikir 8'i kullanıyorum. Bir "Modül Kitaplığı" ekleyin. Orada eklemek için bir Jar Dizini seçebilirsiniz. Daha sonra çalışma profilinin, çalışırken doğru modülün Classpath ve JDK'sını kullandığından emin olun (bu, çalışma yapılandırma iletişim kutusundadır).



2

Sınıf yolunuzda yalnızca x: hedef / sınıflara ihtiyacınız olduğunu varsayalım . Daha sonra bu klasörü sınıf yolunuza ve% IDEA% \ lib \ idea_rt.jar dosyasına eklersiniz. Şimdi işe yarayacak. Bu kadar.


4
Soru, bu klasörü IDEA'daki sınıf yolunuza nasıl ekleyeceğinizdir?
Pacerier

0

Sınıflar klasörünü belirtmeniz gerekmez. Intellij yükleyebilmelidir. "Project Compiler output" boşsa bu hatayı alırsınız.

: Sadece değer ayarlanır altında olduğundan emin olun > Projesi - -> Proje Derleyici çıkış Proje Ayarları sizin için ProjectDir / çıkış klasör

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.