質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

2回答

1828閲覧

Processing2.21でpeasyCam302を実行できるようにしたいです

beautifulsky

総合スコア2

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2021/11/21 04:13

前提・実現したいこと

Processing初心者です。
ProcessingとArduinoを用いて、建築模型の制作に応用しようと考えています。
なので、プログラミングに関する知識がとても浅いです。
peasyCamのライブラリーが実行できず、困っています。
Processingバージョン2.21、Javaバージョン8を利用して実行しました。

https://mrfeinberg.com/peasycam/

上記のサイトから、Peasycam302をダウンロードし、Processingのライブラリーに入れました。
Processing2のsketch→import libraryにも表示されています。

https://github.com/jdf/peasycam/issues/26
「PeasyCam on Processing 2.2.1 #26」

上記のサイトによると、Javaの古いバージョンでは、互換性があり、実行できそうです。

発生している問題・エラーメッセージ

エラーメッセージ
Java.lang.UnsupportedClassVersionError;peasy/PeasyCam

試したこと

コードは、読み込めているので、問題はないのですが、最後の実行の段階で、はじかれてしまいます。

補足情報

ProcessingもArduinoも初心者です。初歩的な質問かもしれませんが、ご回答いただけるとありがたいです。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

※「Processing2.21でpeasyCam302を実行できるようにしたい」という要望を叶える回答ではありません:

ProcessingはそれそのものがJavaの実行環境を持っていて、PCにインストール、セッティングしているJavaのバージョンとは独立して動作します。Processing wikiの以下を記事を読んでみてください。
Processing Java Versions - github

Processing 2.2.1に関して、少なくともWindows版で確認したところではJavaのバージョンは1.7.0_40で動作しています。
イメージ説明
Java8の実行環境を搭載するProcessing 3.5.4で確認したところでは、1.8.0_202でした。

https://github.com/jdf/peasycam/issues/26
「PeasyCam on Processing 2.2.1 #26」

上記のサイトによると、Javaの古いバージョンでは、互換性があり、実行できそうです。

ちょっとissueの内容を読み誤っているように思えます。issueは、「PeasyCamをProcessing 2.2.1で動かしたいけど、java.lang.RuntimeException: java.lang.UnsupportedClassVersionError例外が起きてダメです。Processing 2.2.1/Java 7で動作する古いバージョンのPeasyCamはありませんか?」(意訳)で始まり、同じように使えない方々のコメントが続き、解決案が提示されないままcloseしています。

PeasyCamは、Java 8で動作するProcessing 3.x系で使うしか無いように思います。

投稿2021/11/21 07:58

dodox86

総合スコア9256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beautifulsky

2021/11/21 17:09

コメントありがとうございます。そして、丁寧な説明ありがとうございます。Processing自体でJavaのバージョンが決まっていることについて知らなかったので、教えてくださりありがとうございます。ベジェ曲面をProcessingとArduinoを連動させて、動作させるプログラムを実行したいです。Processing3以降で、コードを実行すると、「The return type is incompatible with PApplet.initSurface()」というエラーメッセージがでてしまいます。Processing2だとinitSurface()の互換性があるので、実行でき、Processing2でできると思っていました。Peasycamを実行するには、Java8で動作するProcessing3でやるのがよさそうですね。Processing3でinitSurface()が互換性がない問題について解決していく方向で進めたいと思います。もし、この問題についても何か知っていることがありましたら教えてくださると幸いです。
dodox86

2021/11/22 00:32

> Processing3以降で、コードを実行すると、「The return type is incompatible with PApplet.initSurface()」というエラーメッセージがでてしまいます。 この記載内容だけだと私では分かりかねます。別の質問になるかと思いますので、該当のコードと共に新しい質問として投稿するなどしましょう。基本、teratailは「プログラミング相談室」ではないので、できるかぎりトピックを限定的にするのが回答を得やすくするひとつのコツです。
beautifulsky

2021/11/22 00:47

ご教授いただきありがとうございます。卒業制作でProcessingとArduinoを用いて、制作したいと考えております。プログラミングとは無縁の環境で、自分で知識を蓄えながら制作しているので、相談室のような利用になってしまって、申し訳ないです。ご回答いただいた内容をヒントにこの問題は、解決することができました。助けていただき、ありがとうございました。
guest

0

【Peasycamを実行するための解決方法】
Processing3以降のバージョンで、Java8を用いた。

【「The return type is incompatible with PApplet.initSurface()」の解決方法】
コードのインポートに、
import processing.core.PApplet;
import processing.core.PSurface;
を追加し、
void initSurface() {
から
public void initsurface() {
と書き換えを行ったら実行できた。

投稿2021/11/22 00:52

beautifulsky

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/11/22 01:06

ああ、なるほど。もとのコードはvoid initSurface()としていたので、PAppletクラスがもともと持っているPSurface initSurface()メソッドと認識されてしまって、「(メソッドをオーバーライドしているのに)返り値の型が違う」エラーになっていたということになります。ご自身で解決できて何よりでした。
beautifulsky

2021/11/22 01:08

詳しい解説ありがとうございます。エラーの理由がつかめました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問