Eclipse(Kepler)インターフェースのさまざまなアイコンとボタンは、3200x1800px画面のラップトップでは非常に小さくなっています。ファイルのエラーを示すように見える赤いエラー装飾は、画面から数センチ離れていないと見にくいです。
オペレーティングシステム(Windows 8.1)の画面解像度やその他の設定を調整してみましたが、他のアプリケーションが大きすぎて表示され、Eclipseアイコンが不快に小さくなります。 Eclipse設定([ウィンドウ]> [設定]> [ダイアログフォント])でフォントを拡大しても、アイコンのサイズには影響しません。
大きなアイコンを強制する簡単な方法はありますか?回避策(拡大鏡を使用しましたが、それはやや不格好なソリューションです)虫眼鏡を買ってマウスの横に置いておくだけですか?たぶん、誰かが虫眼鏡を埋め込んだマウスを作るべきですか? :)
ありがとう。
先月この問題の解決策を探しましたが、理想的な解決策はまだ見つかりませんでした。それを回避する方法があるはずですが、私はそれを見つけることができません。
私は、Windows 8.1で200%の倍率を設定した2560x1600画面のラップトップを使用しています(1280x800画面のように見えますが、より鮮明です)。
このような「HiDPI」モードをサポートするアプリケーションは見た目は素晴らしく見えますが、そうでないアプリケーション(Eclipseなど)はほとんど読めない小さなアイコンを表示します。
また、古いバージョンのVisual Studioを使用しています。それはHiDPI用に更新されていません(明らかにMSはVSの新しいバージョンを使用することを望んでいます)が、それは物事を2倍に拡大するだけなのでHiDPI画面でまだ大丈夫です-アイコンと文字のサイズは正常ですが、低解像度に見えます。
VSがどのように機能するかを見た後、VSのようにスケールアップすることは技術的にそれほど難しくないため、同じモードでEclipseを起動する方法を探し始めました。そのモードでEclipseを起動するように設定できるオプションがあると思いました。私はそれを見つけることができませんでした。
結局のところ、画面解像度を1/4(2560x1600から1280x800)に拡大せずに(200%から100%に)下げ、Eclipseがそれをサポートするために更新されるまで高解像度画面を利用しなかったいくつかの仕事をしなければなりませんでしたが、私はこの問題に対する答えを切実に待っています。
アイコンを含み、サイズを2倍にするEclipse JARでバッチ操作を実行することが1つの解決策であると考えました。少し手を加えた後、うまくいきました。結果はかなり良いです-小さいながらも見栄えの良い「頑固な」アイコンがまだいくつかあります。
コードを小さなプロジェクトにまとめました: https://github.com/davidglevy/Eclipse-icon-enlarger
プロジェクトは次のように機能します。
このソリューションで私が見つけた唯一の問題は、実際に一度しか動作しないことです。プラグインをダウンロードする必要がある場合は、元の場所でダウンロードし、アイコン増加バッチプロセスを再適用します。
Dell XPSでは、実行に約5分かかります。
提案/改善に満足しているが、これは本当にEclipseチームが修正を出すのを待つ間、ただのアドホックなソリューションです。
完成のために、この問題はEclipse 4.6 Neonで解決されると付け加えたと思いました https://www.Eclipse.org/downloads/index-developer.php (現在の開発者バージョン)。アイコンは少し悲しい(低解像度)に見えますが、少なくとも私の4k画面では正しくスケーリングされています。
私もこの問題に少し苦労しました。多くの人が本当に複雑な解像度を投稿していることに気付きましたが、これを行うにはもっと簡単な方法があります!その単なるプログラムであり、スクリプトを変更したり、サードパーティのツールをインストールしたりする必要はありません。この問題は上記の高DPIスケーリングに関連していますが、多くの人が見落としているのは、ランチャー自体の互換性設定を直接変更できないことです。ランチャーとEclipseは2つの異なるプログラムです! Eclipse.exeを参照し、そこで高DPIスケーリングオプションをオーバーライドする必要があります。設定したら、通常どおりランチャーを使用できます。ランチャーは実行可能ファイルをヒットし、Eclipse.exeを起動します。exeで互換性設定を設定しているため、これらの設定を使用して実行されます。 C:\ Users\username\AppData\Local\Yatta\Launcher\installations\Eclipse-ide-for-Java-developers\Eclipseにヘルプがあった場合、exeがどこにあるかを追跡するのに10分ほど費やしました。 EXE
互換性設定の設定方法のスクリーンショットを次に示します。
はい、この設定を調整する前のアイコンは非常に小さかったです。ランチャー自体に互換性設定を設定しようとしましたが、明らかに問題は解決しませんでした。ただし、Eclipse.exeアイコンのオーバーライド高DPI設定を設定すると、アイコンは通常のサイズになります。これが他の人に役立つかどうか教えてください!
私はDell XPS 15で実行しています。解像度や倍率などを詰め込むのではなく、次のことを行いました。
すべてが正常に機能しているようで、ディスプレイはきれいに見えます(少しぼやけている/ピクセルの場合)。私が見ることができる唯一の違いは、タイトルバーがWindows XPスタイルであるということです。
これが他の人にも有効かどうか、誰かが問題に遭遇したかどうかを知りたいです。
最も簡単な方法は、Windowsにアプリケーションのスケーリングを強制するマニフェストファイルを作成することでした。ぼやけていて理想的ではありませんが、ほとんど目に見えないUIよりも優れています!この手法はどのアプリケーションにも適用できるようです。
Eclipse.exeと同じフォルダーにEclipse.exe.manifestファイルを作成し、その中に次のXMLを配置します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-Microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="AMD64"
publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-Microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</Assembly>
最良の方法は、リソースチューナーのようなものでexeマニフェストを編集して追加することです
<application xmlns="urn:schemas-Microsoft-com:asm.v3"><windowsSettings><ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings" xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware></windowsSettings></application>
依存関係の後、exeをdpi非対応として設定します。この方法では、プログラムは少しピクセル化されますが、快適なサイズになります。
最も簡単な解決策は、Eclipse Neonを使用することです。すべてのバグは、このリリースの一部として修正されています。 https://bugs.Eclipse.org/bugs/show_bug.cgi?id=42138
Windows Xpの互換性モードは、Eclipse 32ビットバージョンでのみ使用可能で、この互換性モードで実行した後、アイコンとテキストは適切なサイズになりますが、ネイティブ解像度から画面解像度にスケーリングされるためぼやけています品質が失われます。
Neon(4.6)M6-New and Noteworthy をご覧ください。マイルストーンリリースには、画像の自動スケーリング(ツールバーなど)が含まれています。
SWTは解像度ベースの自動スケーリングを提供します
SWTは、OS XでのMacのRetinaサポートと同様に、WindowsおよびLinuxで高DPIモニターの画像を自動的にスケーリングします。高解像度画像がない場合、SWTは利用可能な画像を自動スケーリングして、 Eclipseは、モニターの解像度に比例してスケーリングされます。
この機能は、Eclipse.iniまたは-vmargsの後にコマンドラインでこのVM引数をfalseに設定することにより、WindowsおよびGTKで無効にできます。
-Dswt.enable.autoScale = false
MacでOSによって提供されるため、自動スケーリングは無効にできません。
警告:一部の拡大縮小された画像は、200%未満の拡大縮小係数で見た目が悪いことを認識しています。これはM7で改善されます。さらに、プラグインプロバイダーがコードを変更せずに高DPIアイコンを追加できるように、プラットフォームUIで高DPIイメージのサポートに取り組んでいます。
またはこれが役立つ場合があります。EclipseMars APIに高解像度が追加されました
高DPIモニターでの高解像度画像のレンダリングをサポートするために、新しいAPIが追加されました。 Imageクラスに2つのコンストラクターが追加されました。クライアントが画像の解像度依存バージョンを提供できるようにする画像プロバイダーコールバックを受け入れます。
public interface ImageDataProvider { public ImageData getImageData (int zoom); } public interface ImageFileNameProvider { public String getImagePath (int zoom); }
ユーザーのモニター構成に応じて、SWTは対応するズームレベルの画像を要求します。以下に、3つの元の画像を表示し、その後にモニターの解像度に応じて解像度が変化するバリアントが表示される例を示します。 Snippet367.Java 。
これは、SWTおよびEclipseベースのアプリケーションで高解像度画像をサポートするための最初のステップにすぎないことに注意してください。プラットフォームで新しいAPIを採用する作業が進行中です。さらに、GCを介した高解像度画像への描画を適切にサポートするには、SWTでより多くの作業が必要です。
高DPIモニターサポート用のAPI
http://help.Eclipse.org/mars/index.jsp?topic=%2Forg.Eclipse.platform.doc.isv%2FwhatsNew%2Fplatform_isv_whatsnew.html
(Linux)シェルスクリプト(.sh
)を作成して同様のことを行うことにより、@ Sighのソリューションを修正しました。これは非常に粗野で残忍であり、特定のシステムに採用する必要があります。 自己責任で使用してください。インストール全体が破損する可能性があります。 このスクリプトを実行する前にフォルダーのバックアップを作成します。スクリプトを改善できます。
#!/bin/bash
for J in *.jar
do
echo "Copying $J..."
mkdir -p "/tmp/$J"
cp "$J" "/tmp/$J/"
cd "/tmp/$J"
echo "Extracting $J..."
jar xf "$J"
rm "$J"
echo "Processing images..."
find . -name "*.gif" -exec convert {} -resize 200% {} \;
echo "Compressing $J..."
if [ `ls .[^.]* 2>/dev/null | wc -l` = 0 ]
then
jar cf "$J" *
else
jar cf "$J" * .[!.]*
fi
cd -
mv $J{,-bak}
mv "/tmp/$J/$J" .
rm -rf "/tmp/$J"
echo "Done."
echo ""
done
これを/opt/Eclipse/plugins
および~/.Eclipse/org.Eclipse.platform_4.x.x/plugins
(またはインストールのパスが何であれ)で実行します。 @Sighのソリューションと同じ問題:これは残忍な「修正」であり、更新または新規インストールのたびに壊れます。
スクリプトを完成させることができます:
imagemagick
が必要です。
.gif
ではないのでしょうか?修正は大歓迎です!
-SurfacePro3-
まず、このレジストリキーを追加する必要があります
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1
次に、実行可能ファイルと同じ名前のマニフェストファイルが、実行可能ファイルと同じフォルダに存在する必要があります。このファイルはEclipse.exe.manifestという名前で、次のもので構成されています。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-Microsoft-com:asm.v3">
<description>Eclipse</description>
<trustInfo xmlns="urn:schemas-Microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-Microsoft-com:asm.v3"
level="asInvoker"
ms_asmv3:uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</Assembly>
ここで詳細を見つけることができます
最後に働いたのはjavaw.exeにマニフェストファイルを追加する Heikki Juntunenが https://bugs.Eclipse.org/bugs/show_bug.cgiで言ったように? id = 421383#c66
https://bugs.Eclipse.org/bugs/show_bug.cgi?id=421383#c6 および@KItisでMatthew Cochraneが作成したレジストリの編集方法とマニフェストファイルの作成方法に関する指示指示を書いた こちら
ここにその投稿のコピーを置きます。
まず、このレジストリキーを追加する必要があります
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1
次に、実行可能ファイルと同じ名前のマニフェストファイルが、実行可能ファイルと同じフォルダに存在する必要があります。このファイルはEclipse.exe.manifestという名前で、次のもので構成されています。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-Microsoft-com:asm.v3">
<description>Eclipse</description>
<trustInfo xmlns="urn:schemas-Microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-Microsoft-com:asm.v3"
level="asInvoker"
ms_asmv3:uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</Assembly>
デイヴィッド・レビー、ありがとう。私はあなたのsol'nなしでEclipseで開発できませんでした。コードを動作させるには、コードにクープラキャッチ(例外)を追加する必要がありました。
while (srcEntries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) srcEntries.nextElement();
logger.info("Processing Zip entry ["+ entry.getName() + "]");
ZipEntry newEntry = new ZipEntry(entry.getName());
try { outStream.putNextEntry(newEntry); }
***catch (Exception e) {
logger.error("error: ", e);
outStream.closeEntry();
continue;*
}**
以下の変更はシームレスに機能します。
CrazyPenguin の reply から引用
「私のように、新しいEclipseでもスケーリングされていないことがわかった人は、こちらを参照してください。 swt-autoscale-tweaks 基本的に私は-Dswtを追加しました.autoScale = quarterをEclipse.iniファイルに追加します。」
JaxEnter に、EclipseのHiDPIを回避するための素晴らしい記事があります。
@Sighのソリューションに触発された私のソリューションを以下に示します(これはmavenを使用しません)。
https://github.com/gitAmrit/EclipseIconEnlarger/tree/master#eclipseiconenlarger
これは、16x16px以下のすべての画像を検索し、ユーザーが望む任意の倍率で拡大することで機能します。
ユーティリティの実行:Java images.EclipseIconEnlarger eclipseBasePath magnificaitonfactor
例:Java images.EclipseIconEnlarger C:\ Users\Amrit\Codes\Eclipse 2
eclipseBasePath = Eclipse.exeが置かれているパス。 C:\ Users\Amrit\Codes\Eclipse拡大率=たとえば、画像を拡大する係数2 =ダブル
デフォルトのWindows 10言語をEngからイタリア語に変更したときにこの問題が発生しました。デフォルトの言語がEngの場合はEclipseがインストールされていました。 Windows言語をEngに戻し、再起動することで問題は解決しました。何が起こったのかわかりませんが、WindowsはC:\ Usersのようにデフォルトの言語(つまりC:\ Utenti)で翻訳しているフォルダーの名前を変更しますが、これが問題を引き起こしている可能性があります。
Eclipseの新しいバージョンをインストールしたくない場合
here で述べたように、Eclipse.initファイルで、-Dswt.autoScale=exact
の後に-vmargs
を追加してください。
ここでexact
は、アイコンをネイティブズームにスケーリングします。ただし、ぼやけたアイコンやギザギザのアイコンで調整する必要があります。
別のコマンドラインソリューションを次に示しますが、これはWindowsでも機能します。
Winrarがインストールされている必要があります(winrarのインストールを指すようにset winrar行を編集します)。
また、imagemagickをインストールし、コマンドラインにそのパスを追加する必要があります。
最後のコメントとして、Eclipseを初めて開く前にこれを実行することをお勧めします(つまり、新規インストール)。 jarから自動的に解凍され、Eclipse/configuration/org.eclips.osgi/...(場合によっては他のフォルダー間)に保存されるアイコンがあります。jarファイルを編集すると、アイコンのサイズを変更できなくなります。このフォルダーを削除して、再度自動抽出することもできますが、確認できません。
実行するには、Eclipse/pluginsディレクトリにdoubler.batファイルを作成するだけで、32x32より小さいアイコンをそのサイズに合わせてサイズ変更する必要があります。
コードは次のとおりです。
@echo off
set winrar="C:\Program Files\WinRAR\winrar.exe"
set startpath=%~dp0
::All *.jar in this folder
FOR %%G in (*.jar) do (call :EachJar "%%G")
GOTO :eof
:EachJar
::echo %1
set nameWOQuotes=%~1
mkdir "tmp\%nameWOQuotes%"
::copy "%nameWOQuotes%" "tmp\%nameWOQuotes%.bak" >NUL
%winrar% x -inul "%nameWOQuotes%" *.jpg *.gif *.png *.tif *.tiff "tmp\%nameWOQuotes%\"
::pause
cd "tmp\%nameWOQuotes%"
FOR /R .\ %%H in (*.jpg *.gif *.png *.tif *.tiff) do (
::echo %nameWOQuotes%-%%~nxH >> "%startpath%\output.txt"
identify "%%H" >> "%startpath%\output.txt"
convert "%%H" -resize 32x32^< "%%H" )
%winrar% a -r -u "%startpath%\%nameWOQuotes%" "*"
cd "%startpath%"
rmdir /s /q "tmp\%nameWOQuotes%"
Goto :eof
ファイルoutput.txtを作成し、サイズが変更されたかどうかに関係なく、変換される前にすべてのORIGINALイメージメタデータを挿入します。