質問: PHPでファイルストレージを作成しています。 EclipseのRSE(Remote System Explorer)を利用して開発を進めていたのですが、 アップロードしたファイルが格納されているディレクトリから500MBのmp4ファイルを開こうとしたら、下記のようなエラーが出現し、『はい』を選択して以降Eclipseが起動しなくなってしまいました。 Eclipseを開けるようにするはどうすればいいでしょうか。 ご教示頂けますと幸いです。 ●エラー内容● 「メモリー不足エラーが発生しました。この種のエラーが今後発生しないようにするにはReadmeの"Running Eclipse"セクションを参照して下さい。 ワークベンチを終了することをお勧めします。 エラーが続いて発生し、これによりワークベンチが警告なしで終了する可能性があります。 詳細については.logファイルを参照して下さい ワークベンチを終了しますか?」 ●.logの内容● 「 !ENTRY org.eclipse.e4.ui.workbench 4 0 2016-03-23 07:18:36.184 !MESSAGE !STACK 0 java.lang.NullPointerException at org.eclipse.jface.resource.JFaceResources.getResources(JFaceResources.java:209) at org.eclipse.jface.resource.JFaceResources.getResources(JFaceResources.java:230) at org.eclipse.ui.part.WorkbenchPart.dispose(WorkbenchPart.java:109) at org.eclipse.ui.texteditor.AbstractTextEditor.dispose(AbstractTextEditor.java:4522) at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.dispose(AbstractDecoratedTextEditor.java:383) at org.eclipse.ui.editors.text.TextEditor.dispose(TextEditor.java:93) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.invalidate(CompatibilityPart.java:238) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.destroy(CompatibilityPart.java:394) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:898) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:879) at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:398) at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:148) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:78) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:174) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:159) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:159) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:159) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:159) at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:106) at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:139) at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:902) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:165) at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75) at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67) at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102) at org.eclipse.osgi.container.Module.publishEvent(Module.java:466) at org.eclipse.osgi.container.Module.doStop(Module.java:624) at org.eclipse.osgi.container.Module.stop(Module.java:488) at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:186) at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:159) at java.lang.Thread.run(Thread.java:745) 」
回答: 情報が薄く、少々bugの可能性も予見しましたが、いったん推測で回答します。 > > 「メモリー不足エラーが発生しました。この種のエラーが今後発生しないようにするにはReadmeの"Running Eclipse"セクションを参照して下さい。 > > > メモリ不足が表示されているのでおそらく、eclipse起動時のVMへの起動時のVMメモリ情報から溢れてしまった可能性があります。 そのため、JavaVMへのチューニングが必要になります。 eclipseはJavaの仮想マシン(VM)で稼働しています。仮想マシン上での内部へのメモリ割り当てを別途行うことでその範囲内で動くような仕組みになっており、eclipse上での設定はその設定ファイルに記述されています。 ですが、大量のソースファイルを扱う場合や、javaのサーバー、また最近ではandroidの仮想マシンを稼働させる場合など、メモリ不足になりがちです。 そのため、チューニングという作業が必要ですが、PCで搭載している物理メモリの範囲内で設定が可能です※。 ※但し、便宜上軽めに説明していますが一部語弊が含まれています、こちらとよくお世話になっている古めの記事ですが、2つとも便利です。参照ください。 したがってeclipse.iniの下記記述を訂正した上、eclipse.exe -clean.cmdを起動するようにしてみてください。 該当箇所 -XmsXXXm -XmxXXXm 変更の値 -Xms512m -Xmx1024m これで改善しない場合はまたお知らせいただけますと幸いです。