タグ付けされた質問 「java」

Javaは人気のある高水準プログラミング言語です。言語自体の使用または理解に問題がある場合は、このタグを使用してください。このタグが単独で使用されることはめったになく、[spring]、[spring-boot]、[jakarta-ee]、[android]、[javafx]、[gradle]、および[maven]と組み合わせて使用​​されることがほとんどです。

14
ジャクソンとロンボクを一緒に働かせることはできません
私はジャクソンとロンボクを組み合わせる実験をしています。それらは私のクラスです: package testelombok; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Value; import lombok.experimental.Wither; @Value @Wither @AllArgsConstructor(onConstructor=@__(@JsonCreator)) public class TestFoo { @JsonProperty("xoom") private String x; private int z; } package testelombok; import com.fasterxml.jackson.databind.ObjectMapper; import com.xebia.jacksonlombok.JacksonLombokAnnotationIntrospector; import java.io.IOException; public class TestLombok { public static void main(String[] args) throws IOException { TestFoo tf …

10
レジストリキー「…」の値は「1.7」ですが、「1.6」が必要です。Java 1.7がインストールされ、レジストリがそれを指している
私の開発チームは最近、サーバーへの完全なアクセス権がないリモート開発環境に強制されました。切り替え前は、JRE 7とともにJava 1.7 x64で正常に動作していたJARがありました。新しいサーバーに移動すると、JARは問題なく動作していましたが、サーバー管理者の1人がJavaを古いバージョンに「更新」しましたバージョンを使用して、使用していたバージョンをアンインストールしました。理由を聞かないでください、わかりません。Java 1.7を再インストールし、JREとともに1.6をアンインストールしました。 実行時に次の問題が発生し、ビルドエラーは発生しません。 Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.7', but '1.6' is required. Error: could not find java.dll Error: could not find Java SE Runtime Environment. ラップトップで同じJARを問題なく実行しました。サーバーとラップトップの両方で、それぞれの%HOME%変数とシステムPATHにJDK 1.7とJRE 7があります。私はJRE 6を再インストールして、後でシステム環境のPATH変数に配置しましたが、結果は同じです。 レジストリを1.6に戻すように変更したところ、次のような結果になりました。これを調べたところ、複数のJavaがインストールされていることが原因であるように見えます(元の問題に戻ります)。 Exception in thread "main" java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 51.0 私はさまざまなフォーラムを調べてきたので、皆さんの洞察に感謝しますが、正確に私の問題を抱えているようには見えません。また、これは私たちが使用している別のサーバーでも発生しています。ありがとう! 更新:JARを1.6または1.7に再コンパイルし、JDKを一致させることはできません。また、なぜ新しいバージョンのJavaが古いコンパイルバージョンを壊すのでしょうか。

3
Spring:リクエストスコープのBeanにHttpServletRequestを注入するにはどうすればよいですか?
SpringでリクエストスコープのBeanを設定しようとしています。 リクエストごとに1回Beanが作成されるように設定しました。次に、HttpServletRequestオブジェクトにアクセスする必要があります。 Beanはリクエストごとに1回作成されるので、コンテナがリクエストオブジェクトをBeanに簡単に挿入できると考えています。どうやってやるの ?
95 java  spring  servlets 

9
異なるタイミングで異なるパラメーターでリストを並べ替える方法
Personたとえば、複数のプロパティを持つ名前のクラスがあります。 public class Person { private int id; private String name, address; // Many more properties. } に多くのPersonオブジェクトが保存されますArrayList<Person>。このリストを複数の並べ替えパラメータで並べ替えたいのですが、時々異なります。たとえば、name昇順とaddress降順でソートしたい場合もあれば、降順でソートしたい場合もありますid。 また、独自の並べ替えメソッドを作成したくない(つまり、を使用したい)Collections.sort(personList, someComparator)。これを実現する最もエレガントなソリューションは何ですか?
95 java  sorting 


7
PythonにはJava Class.forName()と同等のものがありますか?
私は文字列引数を取り、その文字列で指定されたクラスのオブジェクトをPythonで作成する必要があります。Javaではを使用しますClass.forName().newInstance()。Pythonに同等のものはありますか? 回答ありがとうございます。私が何をしているのか知りたい人に答えるために:コマンドライン引数をクラス名として使用してインスタンス化したいと思います。私は実際にはJythonでプログラミングしてJavaクラスをインスタンス化しているので、問題のJava性です。 getattr()よく働く。どうもありがとう。

20
enum内のすべての名前をString []として取得する
enum要素の名前をStringsの配列として取得する最も簡単な方法および/または最短の方法は何ですか? これが意味するのは、たとえば、次の列挙型がある場合です。 public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED; public static String[] names() { // ... } } このnames()メソッドは配列を返し{ "NEW", "RUNNABLE", "BLOCKED", "WAITING", "TIMED_WAITING", "TERMINATED" }ます。
95 java  arrays  enums 

6
一部のクラスでEclipse Java Package Explorerに疑問符が表示されるのはなぜですか?
Eclipse Helios Java Package Explorerで、Javaクラスアイコンが[J]の右側に[J?]のような小さな疑問符を表示するのを確認しました。このアイコンは、プロジェクトの1つのパッケージ内の各クラスに表示されますが、ドキュメントでこれについての説明が見つかりません。 ある時点で、それらが消えてオレンジ色の小さな長方形に置き換えられることを期待しています。(私はそれらの意味も定かではありませんが、それらの意味合いについてはそれほど心配していません。)私はこの質問がより大きなものを指していると思います、これらのアイコンのいずれかがどこかで一緒に定義されていますか?
95 java  eclipse  helios 


7
動的な数のテストを伴うJUnitテスト
私たちのプロジェクトでは、たとえば、ディレクトリからすべてのファイルを取得し、その上でテストを実行する、いくつかのJUnitテストがあります。私がtestEveryFileInDirectoryメソッドを実装した場合、TestCaseこれは失敗または成功する可能性のある1つのテストのみとして表示されます。しかし、私は個々のファイルの結果に興味があります。たとえば、EclipseのグラフィカルなTestRunnerで、各ファイルが個別のテストとして表示されるようにTestCase/ を書くにはどうすればよいTestSuiteですか?(各ファイルの明示的なテスト方法をコーディングすることはオプションではありません。) 質問ParameterizedTestとEclipse Testrunnerの名前も比較してください。

3
OSGi、Java ModularityおよびJigsaw
だから、昨日の朝の時点で、OSGiが何であるかさえ知りませんでした。OSGiは私が何度も何度も何度も作っていくのを見ていた流行語だったので、ついにそれをブラッシュアップするための時間を取っておきました。 それは実際にはかなりクールなもののように思われるので、私は(記録のために)私がOSGiに対していかなる点でも反抗的ではないこと、およびこれがいくつかの「OSGi-bashing」の質問ではないことを述べることから始めたいと思います。 結局のところ、OSGiは基本的にJava ModularityのJSR 277に対応しているようですがJAR、特定の状況で名前空間の解決やクラスローディングの問題につながる可能性のあるファイル仕様の欠陥が認識されています。OSGiは他にも多くの本当にクールなことを行いますが、私が確認できることから、それはその最大の魅力(またはその1つ)です。 私にとって-かなり新しい(数年後の)Java EE開発者として、私たちが2011年に現在Java 7の時代に生きており、これらのクラスローディングの問題が依然として存在していることは、本当に心を揺さぶられます。特に、1つのアプリケーションサーバーに何百ものJARがあり、それらの多くが互いに異なるバージョンに依存し、すべてが(多かれ少なかれ)同時に実行されているエンタープライズ環境では。 私の質問: 私がOSGiに関心があるのと同じくらい、そしてそれが私のプロジェクトに役立つかどうか、またそれが自分のプロジェクトに役立つかどうかを知りたいと思っているのと同じくらい、ただ座ってそのような大きなことを学ぶ時間はありません。少なくとも今。 では、これらの問題が発生した場合、OSGi以外の開発者は何をすべきでしょうか?どのようなJavaのいずれかの場合には(オラクル/日/ JCP)ソリューションは、現在、存在しますか?なぜジグソーパズルはJ7から切り取られたのですか?Jigsawが来年J8で実装されるコミュニティはどれほど確実ですか?Javaプラットフォームの一部ではありませんが、プロジェクトのJigsawを入手することは可能ですか? 私がここで尋ねているのは、パニック、陰謀、そして顔の組み合わせです。OSGiが何であるかがようやく理解できたので、ジグソーのようなものが実現するまでに20年以上かかり、それがリリースから缶詰にされた可能性があることを "理解"しません。それは基本的なようです。 また、開発者として、私のソリューションがOSGiではないことにも興味があります。 また、注:これは「純粋なプログラミング」タイプの質問ではないことを知っていますが、あなたの一部の人があなたの鼻を形から崩す前に、私はこの質問を故意に付けたと述べておきたいと思いますそう。それは、仲間のSOersを最大限に尊敬しているだけであり、私が毎日ここに潜んでいるのを見ている "ITの神々"からの建築レベルの答えを探しているからです。 しかし、SOの質問はいくつかのコードセグメントで裏付けられると絶対に主張する皆さんのために: int x = 9; (このOSGi / Jigsaw / classloader / namespace / JAR hell stuffに参加できる人に感謝します!)

7
静的変数はスレッド間で共有されますか?
スレッドの上級Javaクラスの私の先生は、私にはわからないことを言っていました。 彼は、以下のコードは必ずしもready変数を更新するとは限らないと述べた。彼によると、特に各スレッド(メインスレッドとReaderThread)が独自のプロセッサで実行されているため、2つのスレッドが必ずしも静的変数を共有していないため、同じレジスタ/キャッシュ/ etcと1つのCPUを共有していない他を更新しません。 基本的readyに、メインスレッドで更新される可能性はありますが、では更新されない可能性があるReaderThreadため、ReaderThread無限にループします。 彼はまた、プログラムが0またはを印刷することは可能であると主張した42。どの42ように印刷できるか理解していますが、できません0。彼numberは、変数がデフォルト値に設定されている場合にこれが当てはまるだろうと述べました。 静的変数がスレッド間で更新されることが保証されていないのではないかと思ったのですが、これはJavaにとって非常に奇妙な印象を受けます。ready揮発性にすることでこの問題は修正されますか? 彼はこのコードを示しました: public class NoVisibility { private static boolean ready; private static int number; private static class ReaderThread extends Thread { public void run() { while (!ready) Thread.yield(); System.out.println(number); } } public static void main(String[] args) { new ReaderThread().start(); number = 42; ready = true; …


3
コマンドラインを使用してJUnitクラスから単一のテストを実行する
コマンドラインとJavaのみを使用してJUnitクラスから単一のテストを実行できるようにするアプローチを見つけようとしています。 以下を使用して、クラスからすべてのテストセットを実行できます。 java -cp .... org.junit.runner.JUnitCore org.package.classname 私が本当にやりたいことは次のようなものです: java -cp .... org.junit.runner.JUnitCore org.package.classname.method または: java -cp .... org.junit.runner.JUnitCore org.package.classname#method JUnitアノテーションを使用してこれを行う方法があるかもしれないことに気づきましたが、私は自分のテストクラスのソースを手動で変更したくない(これを自動化しようとしている)。Mavenにこれを行う方法があるかもしれないこともわかりましたが、できればMavenに依存することは避けたいと思います。 だから私はこれを行う方法があるかどうか疑問に思っていますか? 私が探している重要なポイント: JUnitテストクラスから単一のテストを実行する機能 コマンドライン(JUnitを使用) テストソースを変更しない 追加のツールの使用を避ける

8
java.lang.Stringからjava.io.InputStreamを取得するにはどうすればよいですか?
私が持っているString私として使いたいということをInputStream。Java 1.0ではを使用できますがjava.io.StringBufferInputStream、これは@Deprecrated(正当な理由により、文字セットエンコーディングを指定できない)です。 このクラスは文字をバイトに適切に変換しません。JDK 1.1以降、文字列からストリームを作成するための推奨される方法は、StringReader クラスを使用する方法です。 あなたは、作成することができjava.io.Readerてjava.io.StringReader、しかし取るために何のアダプタはありませんReaderし、作成しますがInputStream。 適切な置き換えを求める古代のバグを発見しましたが、私が知る限り、そのようなものは存在しません。 推奨される回避策は、へのjava.lang.String.getBytes()入力として使用することjava.io.ByteArrayInputStreamです。 public InputStream createInputStream(String s, String charset) throws java.io.UnsupportedEncodingException { return new ByteArrayInputStream(s.getBytes(charset)); } しかし、それはStringメモリ全体をバイトの配列として具体化することを意味し、ストリームの目的を無効にします。ほとんどの場合、これは大したことではありませんが、ストリームの意図を維持できるものを探していました。つまり、メモリに(再)実体化されるデータはできるだけ少なくします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.