以下の流れでご説明いたします。
C
C++
C#
Java
NodeJS, TypeScript
PHP
Python
Scala
Perl
Ruby
Go
Swift
Kotlin
Rust
[重要] なぜこの指示に従う必要があるのか
Webエディタから接続されている実行環境と実際の採点時の環境は異なります。
次に指示される方法以外でライブラリをインストールした場合、ライブラリはWebエディタのブラウザセッションが接続している実行環境のみにインストールされ、実際の採点時の環境にはインストールされません。
従って、採点時にはライブラリがインストールされていない状態で採点が実施されます。採点時の環境にもライブラリをインストールするには、必ず以下の指示に従ってインストールしてください。
※こちらは、外部ライブラリの追加方法になりますので、
標準ライブラリの場合、特別対応は必要ありません。
ライブラリの追加方法
C
ライブラリの追加はサポートしておりません。
C++
ライブラリの追加はサポートしておりません。
C#
外部ライブラリを使用する場合は以下の手順で実施してください。
MainApp.csproj
に依存ライブラリの追加または、コマンド部で
dotnet add package
コマンドを発行することでもMainApp.csproj
が更新されます。
例
<ItemGroup>
<PackageReference Include="RestSharp" Version="106.13.0" />
</ItemGroup>
Java
外部ライブラリを使用する場合は以下の手順で実施してください。
pom.xml
に依存ライブラリの追加
例
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.9</version>
</dependency>
</dependencies>
NodeJS, TypeScript
外部ライブラリを使用する場合は以下の手順で実施してください。
package.json
に依存関係を追加
例
"dependencies": {
"lodash": "4.17.15",
"underscore.string": "3.3.5"
}
PHP
外部ライブラリを使用する場合は以下の手順で実施してください。
composer.json
に依存関係の追加
例
"require": {
"guzzlehttp/guzzle": "6.5.0",
"nesbot/carbon": "2.35.0"
}
Python
外部ライブラリを使用する場合は以下の手順で実施してください。
requirements.txt
にライブラリ名とバージョンを記述
例
numpy
requests
下記の例のように、バージョンを指定することもできます。
numpy==1.26.0
requests==2.22.0
Scala
外部ライブラリを使用する場合は以下の手順で実施してください。
build.sbt
に依存ライブラリの追加
例
libraryDependencies ++= Seq(
"org.apache.commons" % "commons-csv" % "1.5",
"org.scalaj" %% "scalaj-http" % "2.4.2"
)
Perl
外部ライブラリを使用する場合は以下の手順で実施してください。
cpanfile
に依存関係を記載してください。Carton を使った外部ライブラリのインストールがサポートされています。
例
requires 'Plack', '1.0'; # 1.0 or newer
requires 'JSON', '>= 2.00, < 2.80';
recommends 'JSON::XS', '2.0';
conflicts 'JSON', '< 1.0';
on 'test' => sub {
requires 'Test::More', '>= 0.96, < 2.0';
recommends 'Test::TCP', '1.12';
};
on 'develop' => sub {
recommends 'Devel::NYTProf';
};
feature 'sqlite', 'SQLite support' => sub {
recommends 'DBD::SQLite';
};
Ruby
外部ライブラリを使用する場合は以下の手順で実施してください。
Gemfile
にライブラリ名とバージョンを記述あるいは
bundle add
コマンドを使用してライブラリ追加を行うこともできます。
例
source 'https://rubygems.org'
# 以下に外部ライブラリ及びそのバージョンを記述
gem 'diff-lcs', '1.4'
gem 'rspec', '3.9.0'
⚠️ 注意:
gem install
コマンドでは Gemfile
が更新されないため使用してはいけません。
Go
外部ライブラリを使用する場合は以下の手順で実施してください。
go.mod
に依存関係の追加最新版を使用する場合、
main.go
のimport
に追加するだけでもよいです。
例
require (
github.com/huandu/xstrings v1.3.2
github.com/shopspring/decimal v1.2.0
)
Swift
外部ライブラリを使用する場合は以下の手順で実施してください。
Package.swift
に依存ライブラリの追加
例
import PackageDescription
let package = Package(
name: "app",
dependencies: [
.package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"),
],
targets: [
.target(
name: "app",
dependencies: ["NIO"]
)
]
)
Kotlin
外部ライブラリを使用する場合は以下の手順で実施してください。
build.gradle
に依存ライブラリの追加
例
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
compile "com.google.code.gson:gson:2.8.6"
compile "com.squareup.okhttp3:okhttp:4.7.2"
}
Rust
外部ライブラリを使用する場合は以下の手順で実施してください。
Cargo.toml
に依存ライブラリを追記してください。
例
serde = "1.0.113"
rand = "0.7.3"
[注意] HTTP クライアントライブラリの利用
Rust 実行環境には OpenSSL がインストールされていないため、openssl
に依存したライブラリはコンパイルできません。いくつかのライブラリはフィーチャーを使って openssl
の代わりに rustls
を利用することでコンパイルできるようになります。
以下に一例を示します。
reqwest
reqwest = { version = "0.10", default-features = false, features = ["rustls-tls"] }
attohttp
attohttpc = { version = "0.13", default-features = false, features = ["tls-rustls"] }
よくある質問
ライブラリが動作しません。
バージョンが古い等が原因で動作しない可能性があります。正しく外部ライブラリが追加されない場合、バージョンの確認、修正をお願いします。
バージョン指定後、バージョン指定せずに実行したが、最新のバージョンに戻らない
ページをリロードしていただくことでバージョンを戻すことが可能です。