問題タブ [javac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java:パッケージから実行可能なjarファイルをコンパイルするには?
私の Java アプリケーションには、次のようなパッケージ構造があります。
これらのディレクトリにある Java ファイルを実行可能な jar にコンパイルするにはどうすればよいですか? 生成された JAR (jdbc) に必要なライブラリをパッケージ化する必要があります。
私は常にEclipseでこれらのことを行ってきましたが、Eclipseを使用せずにリポジトリをコンパイルする方法を数人に提供する必要があり、必要なjavacパターンを呼び出すメイクファイルまたはスクリプトを作成することを考えていました.
spring - Spring3でクラスファイルの問題をコンパイルする
私は自分のアプリケーションにSpringFramework3を使用しました。Netbeansで開発中はすべて問題ありませんが、カスタムビルドが必要で、同じビルドを実行しても問題ありませんが、次のエラーが発生しました。次のメソッドの呼び出し中にエラーが発生しました
しかし、netbeansとの戦争を作成している間は問題はありません(コンパイルの問題についてであると確信しています)この問題についての経験はありますか...同じものをコンパイルするための追加のjavac引数があります(netbeansはそこでカスタムタスクを使用しましたコンパイル)
タイプ例外レポート
メッセージ
例外
根本的な原因
根本的な原因
注根本原因の完全なスタックトレースは、Apache Tomcat/6.0.18ログで入手できます。
java - Java コンパイラ エラーをファイルにキャプチャするにはどうすればよいですか?
Javaプログラムを次のようにコンパイルしました
エラーメッセージをファイルにリダイレクトするためa
。ただしa
、エラーの内容はありません (端末にはまだ表示されます)。コマンドは Linux コマンド プロンプトから実行します。
t1.java の内容は次のとおりです。
そのため、エラーが発生しました。つまり、次のprintln
ように記述されていprintn
ます。
このエラー メッセージをファイルに取り込むにはどうすればよいですa
か?
java - Javaコンパイルの詳細を取得する方法
アプリケーションを構築するためにantスクリプトを使用しています。最近、アプリに必要な1つのjarファイルに変更を加えました。ただし、antスクリプトを実行すると、コンパイルが失敗し、表示されるエラーメッセージにより、コンパイラが以前のバージョンのjarを使用していると思われます。
また、IDEを介したコンパイルは正常に機能します。javacコマンドを使用した手動コンパイルと新しいjarの指定も同様に機能します。
antがビルドに使用するクラスパスを見ると、jarが正しいもののように見えることがわかります。だから私は実際に少し迷っています、どこを見ればいいのかわかりません...何かアイデアはありますか?
また、特定のクラスをコンパイルするときにjavacが実際に使用しているjarのパスを取得できるかどうかも知りたいと思いました。
ありがとう、よろしく
java - javacはOSGiバンドルを構築するのに十分ですか?
javacなどのツールを使用してソースからバンドルを作成するには、線形クラスパスを提供する必要があります。残念ながら、OSGiの観点からはまだ完全に合法である状況では機能しません。
JARが埋め込まれた依存関係。
異なる依存関係に含まれる同じパッケージ。
javacはOSGiメタデータを理解しないので、単純に理解することはできませんが、クラスパスの依存関係を理解することができます。より細かいパッケージのきめ細かいアプローチが必要と思われます。
自動化されたプロセス(継続的インテグレーション)でOSGiを使用している人々は、この問題にどのように対処しますか?不思議なことに、バンドルJARの作成方法(メタデータの作成、JARの作成)については、クラス/内部JARを内部に配置する方法について多くのリソースがありますが、実際にこれらのクラスをコンパイルする方法についてはほとんどありません。
例を見てみましょう。私のバンドルをコンパイルするには、他に2つのバンドルが必要です。どちらにもXercesが埋め込まれたJARとして含まれていますが、2つの異なる互換性のないバージョンがあります。そのうちの1つだけが、私のバンドルがインポートしているxercesのいくつかのパッケージをエクスポートするので、問題はありません。あまりクリーンな状況ではないかもしれませんが、OSGiコンテナで問題なく「合法的に」発生する可能性のある問題が発生します。
さて、どうすればコンパイルできますか?2つの依存関係をクラスパスに入れることができません(埋め込まれたXerces JARはjavacで見つかりません)、フラット化することもできません(2つのバージョンのXercesが衝突し、エクスポートされていないバージョンが最初になる可能性があります) 。唯一の解決策が、フルバンドルスケールではなくパッケージレベルで「クラスパス」を作成することである場合、javacはまったく使用できません。
java - さらに別の Java クラスパスの問題
私は Netbeans のプロジェクトに取り組んできました。次に、それを送信して、マーカーがスクリプトでコンパイルできるようにします。ただし、コマンド ラインから実行しようとすると、NoClassDefFoundError が発生します。クラスパスを現在のディレクトリに手動で設定する場合でも。
javac Main.java は正常に動作します
次に java -classpath を呼び出します。メインは次のとおりです。
javac - java 1.4 コンパイラが、1.5 コンパイラでコンパイルされたサードパーティのライブラリについて文句を言わないのはなぜですか?
java 1.4 コンパイラが 1.5 コンパイラでコンパイルされたサードパーティのライブラリについて文句を言わないのはなぜですか? この問題は、実行時に UnsupportedClassVersionError で発生します。
java - Antはjavacでメッセージなしで失敗します
build.xml
WSDLを介して多数のソースファイルを取得し、それらをコンパイルするAntファイルを作成しました。これらは古い、現在は破壊されている(したがって比較に利用できない)システムで動作していますが、この新しい、より高速なシステムではビルドプロセスが完了していません。
ビルドファイルの関連セクションは次のようになります(更新):
.java
ファイルはWSDLサービスを介して正常にダウンロード/作成されますが、その後、Antは停止してコマンドラインに戻ります。
関連するアプリのバージョン:
私は、Antが返されないjavacに問題があると想定しています。javacからデバッグ情報を取得する方法はありますか?ターゲットにタグを追加しようとしました<record />
が、実行するよりも多くの情報は得られませんant -v
。
他の提案も素晴らしいでしょう!
continuous-integration - ハドソンのジョブはjavacを呼び出さないのですか?
サーバーにHudsonをセットアップしました。何らかの理由で、私のビルドはjavacを呼び出してビルドをコンパイルしません...?「ハドソンの管理」領域でJDKへのパスを設定しましたが、それを認識しているようです(警告は表示されません)。他にやるべきことはありますか?
これが私のジョブの1つのサンプルコンソール出力です(javacがまったく呼び出されないことに注意してください):
ユーザー管理者が開始
svn +ssh://myhost.com/Project1をチェックアウトする
/src/Program.java
build.xml
U
リビジョン119で
前回のビルド以降、svn +ssh://myhost.com/Project1に変更はありません
終了:成功
ant - com.sun.xml.internal。*を使用しませんか?
このステートメントは本当ですか?
com.sun.xml.internalパッケージは、名前が示すように内部パッケージです。ユーザーは、内部JDK実装クラスに依存するコードを記述しないでください。このようなクラスは、JDKの内部実装の詳細であり、予告なしに変更される場合があります。
私の同僚の1人が彼のコードでクラスの1つを使用しました。これにより、コンパイラがクラスを見つけられなかったため、Antのjavacタスクがプロジェクトのコンパイルに失敗しました。Sun / Oracleからの回答によると、ユーザーはパッケージを使用すべきではないため、これはコンパイラの予想される動作です。
質問は、パッケージ内のクラスがそもそも公開された理由です。
ありがとう、
サラ